外观模式
概述
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
比如在维护一个遗留的大型系统时,这个系统已经非常难以维护和扩展了,但包含了非常重要的功能,新的需求开发必须依赖这些功能。这时,就可以为新系统开发一个Facade类,让新系统与Facade交互,Facade与遗留代码交互所有复杂的工作,开发人员分两个小组分别进行。
示例代码
class SubSystem1{
public void method1(){
System.out.println("SubSystem1 method1");
}
}
class SubSystem2{
public void method2(){
System.out.println("SubSystem2 method2");
}
}
class SubSystem3{
public void method3(){
System.out.println("SubSystem3 method3");
}
}
class Facade{
private SubSystem1 s1;
private SubSystem2 s2;
private SubSystem3 s3;
public Facade(){
s1 = new SubSystem1();
s2 = new SubSystem2();
s3 = new SubSystem3();
}
public void methodA(){
s1.method1();
s2.method2();
}
public void methodB(){
s2.method2();
s3.method3();
}
}
//客户端
Facade f = new Facade();
f.methodA();
f.methodB();