美文网首页
<<设计模式之禅(第二版)>>——第二十

<<设计模式之禅(第二版)>>——第二十

作者: leiiiooo | 来源:发表于2016-10-21 11:21 被阅读14次
定义(也叫外观模式,是一种常见的封装模式):
  • 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供了一个高层次的结构,使得子系统更易于使用。
门面模式的通用类图

Subsystem Classes 是子系统所有类的简称,可以代表一个类,也可能代表几十个对象的集合。门面对象是外界访问子系统内部的唯一通道。

public class ClassA {
  void doSomething() {
  }
}
public class ClassB {
  void doSomething() {
  }
}
public class ClassC {
  void doSomething() {
  }
}

public class Faced {
  private ClassA classA;
  private ClassB classB;
  private ClassC classC;

  void methodA() {
    classA.doSomething();
  }

  void methodB() {
    classB.doSomething();
  }

  void methodC() {
    classC.doSomething();
  }

  void method() {
    /*
     * 强烈建议不要这样使用,门面模式只是提供一个访问路径.
     * 这样会产生一个严重的倒依赖问题,子系统必须依赖门面才能被访问,
     * 这是设计上的一个错误,不仅违反了单一原则,同时破坏了系统的封装性,
     * 对于这种情况可以先创建一个封装类,实现相关的封装,然后在传递给门面类
     */
    classB.doSomething();
    classC.doSomething();
  }
}
注意事项:
  • 门面不参与子系统的业务逻辑

相关文章

网友评论

      本文标题:<<设计模式之禅(第二版)>>——第二十

      本文链接:https://www.haomeiwen.com/subject/jegquttx.html