门面模式和代理模式区别(2种模式对比分析)

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

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

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

设计类图

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

飞天项目的设计代码

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

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

门面模式的通用类图

其中的角色分析,

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

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

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

多个子系统

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

门面类

门面模式的优缺点:

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

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

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

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

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

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!2995598829@qq.com
2. 本站不保证所提供下载资源的准确性、安全性和完整性,资源仅供下载学习之用!如遇无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有优币奖励和额外收入!

派优网 ★★投稿栏目★★ 门面模式和代理模式区别(2种模式对比分析) https://www.paayoo.com/46331.html

常见问题
  • 本站所有资源版权均属于原作者所有,本站所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或联络我们。
查看详情

相关推荐