设计模式之门面(外观)模式
门面模式(外观模式)
-
门面模式结构图
-
示例代码:
public class FacadeTest { public static void main(String[] args) { Facade facade = new Facade(); facade.doWork(); } // 子系统A static class SystemA{ public void work(){ System.out.println("系统A准备工作......"); } } // 子系统B static class SystemB{ public void work(){ System.out.println("系统B准备工作......"); } } // 子系统C static class SystemC{ public void work(){ System.out.println("系统C准备工作......"); } } // 外观角色 static class Facade{ private SystemA systemA = new SystemA(); private SystemB systemB = new SystemB(); private SystemC systemC = new SystemC(); // 对外接口 public void doWork(){ systemA.work(); systemB.work(); systemC.work(); } } }
-
总结:
优点:简化了调用过程,松散耦合,遵循迪米特法则;
缺点:不符合开闭原则,某种情况下可能违背单一职责原则.
-