外观模式
<设计模式其实很简单>笔记
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系
统更加容易使用。
//子系统A
public class SubA{
public void MethodA(){
System.out.println("子系统方法A执行!");
}
}
//子系统B
public class SubB{
public void MethodB(){
System.out.println("子系统方法B执行!");
}
}
//子系统C
public class SubC{
public void MethodC(){
System.out.println("子系统方法C执行!");
}
}
//外观类
public class Facade{
private SubA subA;
private SubB subB;
private SubC subC;
public Facade(){
subA = new SubA();
subB = new SubB();
subC = new SubC();
}
//第一组方法
public void MethodOne(){
System.out.println("执行第一组方法");
subA.methdA();
subB.methdB();
}
//第二组方法
public void MethodTwo(){
System.out.println("执行第二组方法");
subC.methdC();
subB.methdB();
}
}
//客户端代码
public static void main(String[] args){
Facade facade = new Facade();
facade.MethodOne();
facade.MethodTwo();
}
//外观模式完美地体现了依赖倒转原则和迪米特法则。
③适用的地方:
当需要为一个复杂的子系统提供一个简单的接口时。
当客户端与抽象类的实现部分之间存在很大的依赖性时。
当需要构建一个层次结构的子系统时。