创建类模式描述如何创建对象,行为类模式关注如何管理对象的行为,结构类模式则看重于如何建立一个软件结构,虽然三种模式的着重点不同,但是在实际应用中还是有重叠的,会出现一种模式适用,另外一种模式也适用的情况。
策略模式是一个行为模式,旨在封装一系列的行为,封装的格式(算法)不同,行为也就不同;而桥梁模式则是解决在不破坏封装的情况下如何抽取出它的抽象部分和实现部分,它的前提是不破坏封装,让抽象部分和实现部分都可以独立地变化。桥梁模式必然有两个“桥墩”——抽象化角色和实现化角色,只要桥墩搭建好,桥就有了,而策略模式只有一个抽象角色,可以没有实现,也可以很多实现。
其实这两者区别还是比较明显的,门面模式是以封装和隔离为主要任务,而中介者模式则是以调和同事类之间的关系为主,因为要调和,所以具有了部分的业务逻辑控制。
1、功能区别
门面模式只是增加了一个门面,它对子系统来说没有增加任何的功能,子系统若脱离门面模式是完全可以独立运行的。而中介者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了中介者,同事类不可能脱离中介者而独立存在,除非是想增加系统的复杂性和降低扩展性。
2、知晓状态不同
对门面模式来说,子系统不知道有门面存在,而对中介者来说,每个同事类都知道中介者存在,因为要依靠中介者调和同事之间的关系,它们对中介者非常了解。
3、封装程序不同
门面模式是一种简单的封装,所有的请求处理都委托给子系统完成。而中介者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务,它属于更进一步的业务功能封装。
三、包装模式群P
有很多模式中的角色是不干活的,它们只是充当黔首作用,你有问题,找我,但我不处理,我让其他人处理。类似这种模式的,这里统一称作包装模式。其包括:装饰模式、适配器模式、门面模式、代理模式、桥梁模式,它们都是通过委托的方式对一个对象或一系列对象施行包装,有了包装,设计的系统才更加灵活、稳定,并且极具扩展性。从实现的角度看,它们都是代理的一种具体表现形式,下面来看看它们在使用场景上有什么区别
1、代理模式主要用在不希望展示一个对象内部细节的场景中,比如一个远程服务器不需要把远程连接的所有细节都暴露给外部模块,通过增加一个代理类,可以很轻松地实现被代理类的功能封装,此外,代理模式还可以用在一个对象的访问需要限制的场景中,比如AOP。
2、装饰模式是一种特殊的代理模式,它倡导的是在不改变接口的前提下为对象增强/减弱功能,或者动态添加额外职责。就扩展性而言,它比子类更加灵活,例如在一个已经运行的项目中,可以轻检地通过增加装饰类来扩展系统的功能。
3、适配器模式的主要意图是接口转换,把一个对象的接口转换成系统希望的另外一个接口,这里的系统指的不仅仅是一个应用,也可能是某个环境,比如通过接口转换可以屏蔽外界接口,以免外界接口深入系统内部,从而提高系统的稳定性和可靠性。
4、桥梁模式是在抽象层产生耦合,解决的是自行扩展的问题,它可以使两个有耦合关系的对象互不影响地扩展,比如对于使用笔画图这样的需求,可以使用桥梁模式设计成用什么笔画什么图的方案,至于以后需求的变更,如增加笔的类型,增加图形等,对该设计来说是小菜一碟。
5、门面模式是一个粗粒度的封装,它提供一个方便访问子系统的接口,不具有任何的业务逻辑,仅仅是一个访问复杂系统的快速通道,没有它,子系统照样运行,有了它,只是更方便访问而已。
相关推荐
第33章 跨战区PK 33.1 策略模式VS桥梁模式 33.1.1 策略模式实现邮件发送 33.1.2 桥梁模式实现邮件发送 33.1.3 最佳实践 33.2 门面模式VS中介者模式 33.2.1 中介者模式实现工资计算 33.2.2 门面模式实现工资计算 ...
蓝桥杯一级备战区-蓝桥杯备赛资料,历届真题及答案解析,做题方法,经验总结 蓝桥杯一级备战区-蓝桥杯备赛资料,历届真题及答案解析,做题方法,经验总结 蓝桥杯一级备战区-蓝桥杯备赛资料,历届真题及答案解析,做题方法,...
【这次抗疫工作对东部战区海军医院的启示是:在面对突发公共卫生事件时,医院需具备快速响应和跨科室协同的能力。合理配置医疗资源,强化人员培训,确保个人防护,以及对环境的科学管理是成功应对类似挑战的关键。...
8. 设计模式:项目的代码组织可能会运用到一些常见的设计模式,如工厂模式(Factory)、单例模式(Singleton)或观察者模式(Observer),以提高代码的可维护性和可扩展性。 9. 错误处理:为了保证程序的健壮性,...
在《CAD建模战区》这个栏目中,它不仅作为一个竞赛平台提供给专业人士和爱好者展示和提升自身CAD建模技能的场所,同时也承担了教育和知识传播的功能。 从这个文件的片段中可以看出,《CAD建模战区》栏目已经运行了...
总结来说,该PDF文件介绍了一个结合教育和娱乐的CAD建模竞赛栏目,通过实际建模任务和奖励机制,激发了CAD爱好者的热情,并促进了CAD建模技术的交流与提高。同时,文件中所提的建模任务要求以及提交细节,为CAD用户...
3. **训练活动——“西卫尖兵-2019”**:该年度野外拉练活动借鉴了跨区基地化训练模式,包括战备等级转化、远程机动、全要素展开、批量伤员救治、移交撤收和复盘总结等环节,旨在全方位锻炼野战医疗所的各个环节。...
首先,CAD建模战区是一个专注于建模技术讨论和实践的平台,其中包含各类挑战性题目,旨在提高建模者的技能水平。通过对显示器、手机和笔记本电脑的建模练习,参与者可以提高自己在外观设计、细节处理以及功能性构建...
CAD建模战区栏目是专注于CAD技术应用和建模分析的专业平台,为三维建模学习者提供了一个展示和交流的平台。在这个栏目中,投稿量稳步上升,栏目得到了良好的发展,并得到了广大读者的支持与厚爱。每期都有一个特定的...
本仓库收集了蓝桥杯备赛的各种资料, 包括从第一届蓝桥杯开始的所有蓝桥杯省赛和国赛的真题, 以及真题的不同的题解, 以及各种备赛的经验和方法, 希望这个仓库能够帮助到大家, 祝你们在蓝桥杯中取得好成绩!...
8. **评估与改进**:训练结束后,对整个过程进行总结评估,找出问题和不足,以便进行针对性的改进和培训,提升整体医疗救援能力。 通过深入研究这个主题,我们可以更好地理解野战医疗所的运作机制,对于军事医学...
语言:中文 (简体) 使命召唤:战区 大逃杀战绩查询,COD吃鸡战绩查询。意见可发邮箱:udoless@gmail.com 使命召唤:战区 大逃杀战绩查询,COD吃鸡战绩查询。意见可发邮箱:udoless@gmail.com
现代战争(战区)游戏模式的作弊。 一天之内把它拼凑起来,投入 0 努力,所以期待狗屎代码。 尽管如此它的工作原理 这不会更新,我也不会为您更新 在dll中创建线程是不安全的 删除它并将依赖该线程(关键循环)的...
《战区剧院级编辑器源代码》是一款专为游戏《战区剧院》设计的关卡编辑工具,其源代码开放给公众,允许开发者和玩家深入理解游戏机制,并自定义创建独特的游戏体验。开源这一举措是游戏开发社区中常见的做法,旨在...
重磅出击的中石油天然气销售五大战区台前幕后修订稿.docx
标题中的“CAD建模战区 (4)”暗示了文档内容与CAD(计算机辅助设计)建模活动有关,是系列文章中的第四篇。这表明有一个连续性的学习过程,读者可以通过不同期数的材料逐步提高CAD建模技能。 描述中提到的投稿量...
”双11“技术战区指挥官-零点大战,奇迹背后的力量-振飞.JPG
根据提供的信息,文件标题为《CAD建模战区 (1).pdf》,并且在描述和标签中都指出这是关于CAD建模技术应用的文档,同时包含了专业指导和参考文献等内容。在提供的部分内容中,提及了“维普资讯”的网址,这通常是一个...
【优化求解】基于matlab GUI模拟退火算法战区通信网频率规划是一个涉及多方面IT知识的主题,主要涵盖了以下几个核心领域: 1. **Matlab编程**:Matlab是一款广泛应用于科学计算、数据分析和工程应用的高级编程环境...