小王今天很努力,写了认证里的代码。这时,领导打来电话。小王,到我办公室来一下。小王忐忑不安地走进办公室。领导笑着告诉小王一个好工作,就是让小王成立项目组,做一个领导非常重视的项目“飞天”。小王被任命为项目经理。
小王开始了新的工作。首先,他必须选择一个产品经理,然后他必须招聘几名开发和测试工程师。我们来分析一下这个需求,设计类图如下:

通过分析,我们需要一个项目的抽象接口和相应的具体实现类,以及一个PM类来处理项目中的其他事情。代码实现如下:
飞天项目的设计代码上面的例子是一个外观设计模式。让我们来看看门面模式的定义:
门面模式(Facade mode ):要求子系统外部和内部的通信必须通过统一的对象进行。Facade模式提供了一个高级接口,使得子系统更容易使用。门面模式也称为外观模式。一般的类图如下:
门面模式的通用类图角色分析,
1.Faceda facade角色:客户端直接与这个facade交互,facade知道子系统的多个功能和职责。

2.子系统子系统,可用于一个或多个子系统。子系统不知道外观的存在。
让我们写一般的代码。首先,我们定义三个子系统:子系统、子系统b和子系统c。
多个子系统定义另一个facade类来提供外部接口:
门面类门面模式的优缺点:

1.优点:减少系统间的相互依赖,提高安全性和灵敏度。
2.缺点:不符合开放封闭原则,封闭是为了修改,开放是为了扩展。
门面模式和代理模式的区别:
facade模式为子系统中的一组接口提供了统一的高层接口,简化了系统的使用;
代理模式为其他对象提供代理,以控制对此对象的访问。


