外观模式
class SubSystemOne {
public void MethodOne(){
..
}
}
class SubSystemTwo {
public void MethodTwo(){
..
}
}
// 外观类
class Facade {
SubSystemOne one;
SubSystemTwo two;
public Facade() {
one = new SubSystemOne();
two = new SubSystemTwo();
}
public void MethodA() {
one.MethodOne();
two.MethodTwo();
}
}
//client
static void Main(string[] args){
Facade facade = new Facade();
facade.MethodA();
}
外观模式完美体现依赖倒转原则和迪米特法则思想
什么时候使用:设计初始阶段有意识的将不同的两个层分离,层与层之间建立外观Facade
在维护一个遗留的大型系统时,可能这个系统已经非常难以维护,但新的需求开发必须要依赖他,可以为新系统开发一个外观Facade类,来提供设计粗糙或高度复杂的遗留代码比较清晰简单的接口,让新系统与Facade对象交互,
可以分两个小组,一个开发Facade与老系统的交互,另一个只要了解Facade的接口,直接开发新系统调用这些接口即可,确实可以减少很多不必要的麻烦。