首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

设计模式之门面模式

设计模式之门面模式(Java实现)

      小王今天挺勤奋,在认真的写着代码,这时领导电话来了,小王啊到我办公室来一趟。小王心里忐忑着走进了办公室。领导笑嘻嘻的告诉了小王一个好活,就是让小王组建一个项目组,做一个领导很重视的项目“飞天”,小王被任命为项目经理。

      小王开了新的工作,首先要选择一个产品经理,再就是要招几个开发和测试工程师。我们分析下这个需求,设计类图如下:

设计类图

通过分析,我们需要一个项目的抽象接口和对应的一个具体实现类,还有一个PM类来处理项目中的其他事情,代码实现如下:

飞天项目的设计代码

上面的例子就是一个门面设计模式,我们看看门面模式的定义:

门面模式(Facade Pattern):要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供一个高层的接口,使得子系统更易于使用。门面模式也叫做外观模式,通用类图如下:

门面模式的通用类图

其中的角色分析,

1、Faceda门面角色:客户端和这个门面直接交互,门面知道子系统的多有功能和责任。

2、Subsystem子系统,可以用于一个或者多个子系统,子系统不知道门面的存在。

我们来写一下通用的代码,首先定义一个子系统SubSystemA,SubSystemB和SubSystemC

多个子系统

再定义一个门面类,对外提供接口:

门面类

门面模式的优缺点:

1、优点:减少系统之间的相互依赖,提高安全性和灵敏性。

2、缺点:不符开闭原则,对修改关闭,对扩展开放。

门面模式和代理模式的不同:

门面模式为子系统中的一组接口提供一个统一的高层接口,简化了系统的使用;

代理模式为其他对象提供一种代理以控制对这个对象的访问。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200419A0L9UB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券