外观模式(Facade): 为子系统中的一组接口提供一个一致的界面, 此模式定义了一个高层接口, 这个接口使得这一子系统更加容易使用。
四个子系统的类:
class SubSystemOne{
public void MethodOne(){
Console.WriteLine(" 子系统方法一");
}
}
class SubSystemTwo{
public void MethodTwo(){
Console.WriteLine(" 子系统方法二");
}
}
class SubSystemThree{
public void MethodThree(){
Console.WriteLine(" 子系统方法三");
}
}
class SubSystemFour{
public void MethodFour(){
Console.WriteLine(" 子系统方法四");
}
}
外观类:
class Facade {
SubSystemOne one;
SubSystemTwo two;
SubSystemThree three;
SubSystemFour four;
public Facade(){
one = new SubSystemOne();
tow = new SubSystemTwo();
three = new SubSystemThree()
four = new SubSystemFour();
}
public void MethodA(){
Console.WriteLine("\n 方法组A() --- ");
one.MethodOne();
two.MethodTwo();
four.MethodFour();
}
public void MethodB(){
Console.WriteLine("\n 方法组B() ---");
two.MehodTwo();
three.MethodThree();
}
}
外观类: 他需要了解所有的子系统的方法或属性, 进行组合, 以备外界使用。
客户端应用:
static void Main(String args[]){
Facade facade = new Facade();
facade.MethodA();
facade.MethodB();
console.Read();
}
由于Facade 的作用, 客户端可以根本不知道三个子系统类的存在。
开发人员在设计初期阶段, 应该就要意识到将不同的两个层分离, 层与层之间建立外观Facade。