电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

设计模式小结

8页
  • 卖家[上传人]:大米
  • 文档编号:481185970
  • 上传时间:2022-10-31
  • 文档格式:DOCX
  • 文档大小:43.99KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、仅供个人参考-摘自设计模式之禅一、创建类模式:包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式,提供对象的创建和管理职能。1、单例模式是要保持在内存中只有一个对象。2、原型模式是要求通过赋值的方式产生一个新的对象。3、 工厂方法模式和建造者模式都属于对象创建类模式,都用来创建类的对象。区别:(1)意图不同工厂方法模式,关注的是一个产品整体。无须关注产品的各部分是如何创建出来的;建造者模式中,一个具体产品的产生是依赖各个部件的产生以及装配顺序,它关注的是“由零件一步一步地组装出产品对象”。简单的说,工厂模式是一个对象创建的组线条应用,建造者模式则是通过细线条勾勒出一个复杂对象,关注的产品组成部分的创建过程。(2)产品的复杂度不同工厂方法模式创建的产品一般都是单一性质产品,而建造者模式创建的则是一个复合产品,它由各个部分复合而成,部件不同产品对象不同。它们的粒度大小不同,一般来说,工厂方法模式的对象粒度比较粗,建造者模式的产品对象粒度比较细。4、抽象工厂模式比建造者模式的尺度要大,它关注产品整体,而建造者模式关注构建过程,因此建造者模式可以很容易地构建出一个崭新的产品,只要导

      2、演类能够提供具体的工艺流程。也正因为如何,两者的应用场景截然不同,如果希望屏蔽对象的创建过程,只提供一个封装良好的对象,则可以选择抽象工厂方法模式。而建造者模式可以用在构件的装配方面,如通过装配不同的组件或者相同组件的不同顺序,可以产生一个新的对象,它可以产生一个非常灵活的架构,方便地扩展和维护系统。二、结构类模式包括适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式和代理模式。1、 代理模式与装饰模式代理模式是把当前的行为或功能委托给其他对象执行,代理类负责接口限定:是否可以调用真实角色,以及是否对发送到真实角色的消息进行变形处理,它不对被主题角色(被代理类)的功能做任务处理。代理模式使用到极致开发就是AOP,使用了代理和反射的技术。装饰模式是在要保证接口不变的情况下加强肋的功能,它保证的是被修饰的对象功能比原始对象丰富(或减弱),但不做准入条件判断和准入参数过滤,如是否可以执行类的功能,过滤输入参数是否合规等,这不是装饰模式关心的。在jdk的java.io.*包中大量使用装饰模式2、 装饰模式与适配器模式a. 意图不同装饰模式的意图是加强对象的功能,它不改变类的行为和属性

      3、,只是增加(减弱)功能;而适配器莫斯关注的则是转化,它的主要意图是两个不同对象之间的装好,它关注转换。b. 施与对象不同装饰模式装饰的对象必须是自己得同宗,也就是相同的接口或父类,只有在具有相同的属性和行为的情况下,才能比较行为是增加还是减弱;适配器模式则必须是两个不同的对象,因为它着重于装换,只有两个不同的对象才有装换的必要。c. 场景不同装饰模式在任何时候都可以使用,只要是想增强类的功能,而适配器模式则是一个补救模式,一般出现在系统成熟或已经构建完毕的项目中,作为一个紧急处理手段采用d. 扩展性不同装饰模式很容易扩展;但适配器模式建立模式,去除困难。三、行为类模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。1、 、策略模式与命令模式两个模式相似,特别是命令模式退化时,如无接受者,这种情况下,两个模式类图完全一样,代码实现也比较相似,区别:a. 关注点不同策略模式关注的是算法替换的问题,一个新的算法投产,旧算法退休,或提供多种算法由调用者自己选择使用,算法的自由更替是它实现的要点。换句话说,策略模

      4、式关注的是算法的完整性、封装性,只有具备了这两个条件才能保证其可以自由切换。命令模式则关注的是解耦问题,如何让请求者和执行者解耦是它需要首先解决的,解耦的要求就是把请求内容封装为一个个的命令,由接收者执行。由于封装成了命令,就同时可以对命令进行多种处理,例如撤销、记录等b. 角色功能不同策略模式中的具体算法是负责一个完整的算法逻辑,它是不可再拆分的原子业务单元,一旦变更就是对算法整体的变更。而命令模式则不同,它关注命令的实现,也就是功能的实现。接收者对命令负责,与请求者无关。命令模式中的接收者只要符合六大设计原则,完全不用关心它是否完成了一个具体逻辑,它的影响范围也仅仅是抽象命令和具体命令,对它的修改不会扩散到模式外的模块。c. 策略模式使用于算法要求变换的场景,而命令模式适用于解耦两个有紧耦合关系的对象场合或多撤销的场景。2、 策略模式与状态模式a. 环境角色的职责不同两者都有一个叫做context环境角色的类,但区别很大,策略模式的环境角色只是一个委托左右,负责算法的替换;而状态模式的环境角色不仅仅是委托行为,它还具有登记状态变化的功能,与具体的状态类协作,共同完成状态切换行为随之

      5、切换的任务b. 解决问题的重点不同策略模式旨在解决内容算法如何改变的问题,也就是将内部算法的改变对外界的影响降低到最小程度,它保证的是算法可以自由地切换;而状态模式旨在解决内在状态的改变而引起行为改变的问题,它的出发点是事物的状态,封装状态而暴露行为,一个对象的状态改变,从外界来看好像是行为改变。c. 解决问题的方法不同。策略模式只是确保算法可以自由切换,但是什么时候用什么算法它决定不了;而状态模式对外暴露的是行为,状态的变化一般是由环境角色和具体状态共同完成的,也就是说状态模式封装了状态的变化而暴露了不同的行为或行为结果。d. 应用场景不同策略模式是一系列平行的、可相互替换的算法封装后的结果,这就限定了它的应用场景:算法必须是平行的。状态模式则要求有一系列状态发生变化的场景,它要求的是有状态且有行为的场景,也就是一个对象必须具有二维(状态和行为)描述采用采用状态模式,如果只有状态而没有行为,则状态的变化就失去了意义。e. 复杂度不同通常策略模式结构简单,易扩展。状态模式比较复杂,它封装的是变化,而变化无穷。3、 观察者模式(触发链、观察者链)与责任链模式a. 链中的消息对象不同从首节

      6、点开始到最终的尾节点,两个链中传递的消息对象是不同的。责任链模式基本不改变消息对象的结构,虽然每个节点都可以参与消费(一般不参与消防),但它的结构不会改变;再触发链模式中传递的对象是可以自由变换,只要上下级节点对传递对象了解即可,它不要求链中的消息对象不变化,它只要求链中相邻两个节点的消息对象固定b. 上下节点的关系不同在责任链模式中,上下节点没有关系,都是接收同样的对象,所有传递的对象都是从链首传递过来,上一节点是什么没关系,只要按照自己得逻辑处理就成。而出发链模式就不同,它的上下级关系很亲密,下级对上级顶礼膜拜,上级对下级绝对信任,链中的任意两个相邻节点都是一个牢固的独立团体。c. 消息的分销渠道不同再责任链模式中,一个消息从链首传递进来后,就开始沿着链条向链尾运动,方向是单一的、固定的;而触发链模式则不同,由于它采用的是观察者模式,所以有非常大的灵活性,一个消息传递到链首后,具体怎么传递是不固定的,可以以广播方式传递,也可以以跳跃方式传递,取决于逻辑。综合1 、策略模式与桥梁模式策略模式是一个行为模式,旨在封装一系列的行为。而桥梁模式则是解决在不破坏封装的情况下如何抽取出它的抽象

      7、部分和实现部分,它的前提是不破坏封装,让抽象部分和实现部分都可以独立地变化。简单的说,策略模式是使用和实现都可以独立扩展的模式。桥梁模式必然有两个“桥墩”-抽象化角色和实现化角色,只要桥墩搭建好,桥就有了,而策略模式只有一个抽象角色,可以没有实现,也可以有很多实现。2 、门面模式与中介者模式门面模式是以封装和隔离为主要任务,而中介者模式则是以调和同事类之间的关系为主,因为要调和,所以具有了部分的业务逻辑控制。区别:a. 功能区别门面模式只是增加了一个门面,它对子系统来说没有增加任务的功能,子系统若脱离门面模式是完全可以独立原型的。而中介者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了中介者,同事类不可能脱离中介者而独立存在,除非是想增加系统的复杂性和降低扩展性。b. 知晓状态不同不得用于商业用途对门面模式来说,子系统不知道有门面存在,而对中介者来说,每个同事类都知道中介者存在,因为要依靠中介者调和同事之间的关系,他们对中介者非常了解。c.封装程度不同门面模式是一种简单的封装,所有的请求处理都委托给子系统完成,而中介者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务,它属于更进一步的业务功能封装。仅供个人参考仅供个人用于学习、研究;不得用于商业用途Forpersonaluseonlyinstudyandresearch;notforcommercialuse.Nurfurdenpers?nlichenfurStudien,Forschung,zukommerziellenZweckenverwendetwerden.Pourletudeetlarechercheuniquementddesfinspersonnelles;pasddesfinscommerciales.tojibkoAJiajiioAeakpTOpwenojibsymaiflOidyHeHMiacmenoBanhhhaojikheiHcnojib3OBaTbCHbMOMMepnecKHxuejiax.以下无正文不得用于商业用途

      《设计模式小结》由会员大米分享,可在线阅读,更多相关《设计模式小结》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.