在Web编程中,有所谓的n-层架构,就是Facade的思想,即每一层都封装好一部分功能,提供给上一层统一的方法调用,比如说数据层,将操作一次数据库的整个过程封装为一个方法,而我们在逻辑层调用该方法时,只需要传递一个SQL参数:
public static void ExecNonQuery(string sql)
{
using (SqlConnection conn = new SqlConnection())
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql);
cmd.ExecuteNonQuery();
}
}
{
using (SqlConnection conn = new SqlConnection())
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql);
cmd.ExecuteNonQuery();
}
}
整个Framework体系就是Facade模式的封装,随着1.0升级到3.5,越来越多复杂的高级功能被封装,可以说Facade无处不在。
设计Facade时,要尽量松散耦和。可以把子功能分别设计为Facade,再将这些小Facade拼装成一个大的Facade,而不是把这些子功能的代码直接拼成一个Facade。