电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

设计模式小结

  • 资源ID:481185970       资源大小:43.99KB        全文页数:8页
  • 资源格式: DOCX        下载积分:15金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要15金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

设计模式小结

仅供个人参考-摘自设计模式之禅一、创建类模式:包括工厂方法模式、建造者模式、抽象工厂模式、单例模式和原型模式,提供对象的创建和管理职能。1、单例模式是要保持在内存中只有一个对象。2、原型模式是要求通过赋值的方式产生一个新的对象。3、 工厂方法模式和建造者模式都属于对象创建类模式,都用来创建类的对象。区别:(1)意图不同工厂方法模式,关注的是一个产品整体。无须关注产品的各部分是如何创建出来的;建造者模式中,一个具体产品的产生是依赖各个部件的产生以及装配顺序,它关注的是“由零件一步一步地组装出产品对象”。简单的说,工厂模式是一个对象创建的组线条应用,建造者模式则是通过细线条勾勒出一个复杂对象,关注的产品组成部分的创建过程。(2)产品的复杂度不同工厂方法模式创建的产品一般都是单一性质产品,而建造者模式创建的则是一个复合产品,它由各个部分复合而成,部件不同产品对象不同。它们的粒度大小不同,一般来说,工厂方法模式的对象粒度比较粗,建造者模式的产品对象粒度比较细。4、抽象工厂模式比建造者模式的尺度要大,它关注产品整体,而建造者模式关注构建过程,因此建造者模式可以很容易地构建出一个崭新的产品,只要导演类能够提供具体的工艺流程。也正因为如何,两者的应用场景截然不同,如果希望屏蔽对象的创建过程,只提供一个封装良好的对象,则可以选择抽象工厂方法模式。而建造者模式可以用在构件的装配方面,如通过装配不同的组件或者相同组件的不同顺序,可以产生一个新的对象,它可以产生一个非常灵活的架构,方便地扩展和维护系统。二、结构类模式包括适配器模式、桥梁模式、组合模式、装饰模式、门面模式、享元模式和代理模式。1、 代理模式与装饰模式代理模式是把当前的行为或功能委托给其他对象执行,代理类负责接口限定:是否可以调用真实角色,以及是否对发送到真实角色的消息进行变形处理,它不对被主题角色(被代理类)的功能做任务处理。代理模式使用到极致开发就是AOP,使用了代理和反射的技术。装饰模式是在要保证接口不变的情况下加强肋的功能,它保证的是被修饰的对象功能比原始对象丰富(或减弱),但不做准入条件判断和准入参数过滤,如是否可以执行类的功能,过滤输入参数是否合规等,这不是装饰模式关心的。在jdk的java.io.*包中大量使用装饰模式2、 装饰模式与适配器模式a. 意图不同装饰模式的意图是加强对象的功能,它不改变类的行为和属性,只是增加(减弱)功能;而适配器莫斯关注的则是转化,它的主要意图是两个不同对象之间的装好,它关注转换。b. 施与对象不同装饰模式装饰的对象必须是自己得同宗,也就是相同的接口或父类,只有在具有相同的属性和行为的情况下,才能比较行为是增加还是减弱;适配器模式则必须是两个不同的对象,因为它着重于装换,只有两个不同的对象才有装换的必要。c. 场景不同装饰模式在任何时候都可以使用,只要是想增强类的功能,而适配器模式则是一个补救模式,一般出现在系统成熟或已经构建完毕的项目中,作为一个紧急处理手段采用d. 扩展性不同装饰模式很容易扩展;但适配器模式建立模式,去除困难。三、行为类模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。1、 、策略模式与命令模式两个模式相似,特别是命令模式退化时,如无接受者,这种情况下,两个模式类图完全一样,代码实现也比较相似,区别:a. 关注点不同策略模式关注的是算法替换的问题,一个新的算法投产,旧算法退休,或提供多种算法由调用者自己选择使用,算法的自由更替是它实现的要点。换句话说,策略模式关注的是算法的完整性、封装性,只有具备了这两个条件才能保证其可以自由切换。命令模式则关注的是解耦问题,如何让请求者和执行者解耦是它需要首先解决的,解耦的要求就是把请求内容封装为一个个的命令,由接收者执行。由于封装成了命令,就同时可以对命令进行多种处理,例如撤销、记录等b. 角色功能不同策略模式中的具体算法是负责一个完整的算法逻辑,它是不可再拆分的原子业务单元,一旦变更就是对算法整体的变更。而命令模式则不同,它关注命令的实现,也就是功能的实现。接收者对命令负责,与请求者无关。命令模式中的接收者只要符合六大设计原则,完全不用关心它是否完成了一个具体逻辑,它的影响范围也仅仅是抽象命令和具体命令,对它的修改不会扩散到模式外的模块。c. 策略模式使用于算法要求变换的场景,而命令模式适用于解耦两个有紧耦合关系的对象场合或多撤销的场景。2、 策略模式与状态模式a. 环境角色的职责不同两者都有一个叫做context环境角色的类,但区别很大,策略模式的环境角色只是一个委托左右,负责算法的替换;而状态模式的环境角色不仅仅是委托行为,它还具有登记状态变化的功能,与具体的状态类协作,共同完成状态切换行为随之切换的任务b. 解决问题的重点不同策略模式旨在解决内容算法如何改变的问题,也就是将内部算法的改变对外界的影响降低到最小程度,它保证的是算法可以自由地切换;而状态模式旨在解决内在状态的改变而引起行为改变的问题,它的出发点是事物的状态,封装状态而暴露行为,一个对象的状态改变,从外界来看好像是行为改变。c. 解决问题的方法不同。策略模式只是确保算法可以自由切换,但是什么时候用什么算法它决定不了;而状态模式对外暴露的是行为,状态的变化一般是由环境角色和具体状态共同完成的,也就是说状态模式封装了状态的变化而暴露了不同的行为或行为结果。d. 应用场景不同策略模式是一系列平行的、可相互替换的算法封装后的结果,这就限定了它的应用场景:算法必须是平行的。状态模式则要求有一系列状态发生变化的场景,它要求的是有状态且有行为的场景,也就是一个对象必须具有二维(状态和行为)描述采用采用状态模式,如果只有状态而没有行为,则状态的变化就失去了意义。e. 复杂度不同通常策略模式结构简单,易扩展。状态模式比较复杂,它封装的是变化,而变化无穷。3、 观察者模式(触发链、观察者链)与责任链模式a. 链中的消息对象不同从首节点开始到最终的尾节点,两个链中传递的消息对象是不同的。责任链模式基本不改变消息对象的结构,虽然每个节点都可以参与消费(一般不参与消防),但它的结构不会改变;再触发链模式中传递的对象是可以自由变换,只要上下级节点对传递对象了解即可,它不要求链中的消息对象不变化,它只要求链中相邻两个节点的消息对象固定b. 上下节点的关系不同在责任链模式中,上下节点没有关系,都是接收同样的对象,所有传递的对象都是从链首传递过来,上一节点是什么没关系,只要按照自己得逻辑处理就成。而出发链模式就不同,它的上下级关系很亲密,下级对上级顶礼膜拜,上级对下级绝对信任,链中的任意两个相邻节点都是一个牢固的独立团体。c. 消息的分销渠道不同再责任链模式中,一个消息从链首传递进来后,就开始沿着链条向链尾运动,方向是单一的、固定的;而触发链模式则不同,由于它采用的是观察者模式,所以有非常大的灵活性,一个消息传递到链首后,具体怎么传递是不固定的,可以以广播方式传递,也可以以跳跃方式传递,取决于逻辑。综合1 、策略模式与桥梁模式策略模式是一个行为模式,旨在封装一系列的行为。而桥梁模式则是解决在不破坏封装的情况下如何抽取出它的抽象部分和实现部分,它的前提是不破坏封装,让抽象部分和实现部分都可以独立地变化。简单的说,策略模式是使用和实现都可以独立扩展的模式。桥梁模式必然有两个“桥墩”-抽象化角色和实现化角色,只要桥墩搭建好,桥就有了,而策略模式只有一个抽象角色,可以没有实现,也可以有很多实现。2 、门面模式与中介者模式门面模式是以封装和隔离为主要任务,而中介者模式则是以调和同事类之间的关系为主,因为要调和,所以具有了部分的业务逻辑控制。区别:a. 功能区别门面模式只是增加了一个门面,它对子系统来说没有增加任务的功能,子系统若脱离门面模式是完全可以独立原型的。而中介者模式则增加了业务功能,它把各个同事类中的原有耦合关系移植到了中介者,同事类不可能脱离中介者而独立存在,除非是想增加系统的复杂性和降低扩展性。b. 知晓状态不同不得用于商业用途对门面模式来说,子系统不知道有门面存在,而对中介者来说,每个同事类都知道中介者存在,因为要依靠中介者调和同事之间的关系,他们对中介者非常了解。c.封装程度不同门面模式是一种简单的封装,所有的请求处理都委托给子系统完成,而中介者模式则需要有一个中心,由中心协调同事类完成,并且中心本身也完成部分业务,它属于更进一步的业务功能封装。仅供个人参考仅供个人用于学习、研究;不得用于商业用途Forpersonaluseonlyinstudyandresearch;notforcommercialuse.Nurfurdenpers?nlichenfurStudien,Forschung,zukommerziellenZweckenverwendetwerden.Pourl'etudeetlarechercheuniquementddesfinspersonnelles;pasddesfinscommerciales.tojibkoAJiajiioAeakpTOpwenojibsymaiflOidyHeHMiacmenoBanhhhaoji>kheiHcnojib3OBaTbCHbMOMMepnecKHxuejiax.以下无正文不得用于商业用途

注意事项

本文(设计模式小结)为本站会员(大米)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.