北京北大青鸟:Java开发中的23种设计模式.docxVIP

北京北大青鸟:Java开发中的23种设计模式.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京北大青鸟:Java开发中的23种设计模式学习设计模式有两个意义:一、学习设计模式最重要的是了解模式的手机应用场景。编程遇到特定场景的话,要有意识联想到设计模式,哪怕细节忘了也没关系,翻翻书就找到了。二、提高手机APP设计的思想。学习设计模式的时候,要体会模式精妙之处,当想明白大师思想和自己的差距的时候,差距就缩短了一点儿。有的模式平淡无奇,应用却很广泛。有的模式设计精巧,应用场景却不易遇到。无论如何,要么掌握工具,要么学到思想,都是收获。设计模式可以分为三类:behavioural, structural, creationalbehavioural 11 种1. Memento(备忘录)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。【了解详情】2. Chain of Responsibility(责任链)为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。适合用在一系列handler的场景下。分为纯和不纯两种,好像人也可以这么分?3. Observer(观察者)定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。因为java里有Obserable和Observer, 所以通常在java里不会自己设计观察者模式。4. Command(命令模式)将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。command模式用来解耦invoker和receiver.5. State(状态模式)允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。OO编程如果出现多个相同的if…else条件,应该考虑用state模式重构。work flow的状态器也是基于State模式的。6. Interpreter(解释器)给定一个语言,定义它的语法的一种表示,并定义一个解释器,该解释器使用该表示解释语言中的句子。7. Strategy(策略模式)定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。【点击查看】8. Iterator(迭代子)Java Collection都可以迭代,在java上不需要格外设计iterator.9. Template Method(模板方法)顾名思义。太简单了,学过一遍就不会忘。但是这个应用非常广泛!10. Mediator(仲裁者)用来解耦多个peer.个人觉得这个模式多半会让mediator十分臃肿,mediator本身需要有很清晰的设计才能使用。应用场景恐怕也少。11. Visitor(访问者)collection里存一个类系的entry时,使用visitor模式可以避免instance of的使用。更重要的是方便扩展类系。Structure 7种12. adapter(适配器)将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。13. Proxy(代理)aop是代理模式的一种发挥。Spring和Hibernate都大量使用proxy.可以引申学学JDK的dynamic proxy.模式简单,略。【查看详情】14. Bridge(桥梁)Bridge在技术上是strategy的进一步发挥,但侧重在实现与抽象的解耦。将抽象部分与它的实现部分分离,使它们都可以独立地变化。15. Composite适用于树状结构。16. Decorator(装饰)在java I/O中广泛使用。为了解决类爆炸的问题。17. Facade(门面)连个UML图都没有,算神马模式?18. Flyweight分单纯、复合两种,本身包含了工厂方法模式。一系列对象如果他们都有某部分属于特定集合,就让他们共享这个特定集合以节省资源。Creational 6 种19. Factory Method(工厂方法)两个变种,一个是根据参数创建对象,一个是factory类系对应产品类系。面向接口编程在创建模式的体现。【了解详情】20. Abstract Factory(抽象工厂)只有产品有两个类系的时候才用得上。21. Builder产品分部分,并且build的过程不定的时候考虑用这种模式。是模板模式的一种发挥22. Prototype(原型)java有cloneable的支持,所以通常不需要自己设计prototype. java用prototype的时候注意深复制浅复制的问题。prototype之外的一个选择是提供一个constructor接受本类型对象作为参数,这个方式

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档