知识大全 Java开发中的23种设计模式
Posted 知
篇首语:吾生也有涯,而知也无涯。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java开发中的23种设计模式相关的知识,希望对你有一定的参考价值。
Java开发中的23种设计模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
学习设计模式有两个意义 一 学习设计模式最重要的是了解模式的手机应用场景 编程遇到特定场景的话 要有意识联想到设计模式 哪怕细节忘了也没关系 翻翻书就找到了 二 提高手机APP设计的思想 学习设计模式的时候 要体会模式精妙之处 当想明白大师思想和自己的差距的时候 差距就缩短了一点儿 有的模式平淡无奇 应用却广泛 有的模式设计精巧 应用场景却不易遇到 无论如何 要么掌握工具 要么学到思想 都是收获 最适合简单概括设计模式的是UML图 收集了一个非常好的资源 分享在我的sky drive网络硬盘上 包含 种设计模式的UML图 cid d b f bf f/self aspx/ Public/books/designpatternscard pdf 设计模式可以分为三类 behavioural structural creational behavioural 种 Memento(备忘录) 精巧程度 星 应用广泛 星 在不破坏封装性的前提下 捕获一个对象的内部状态 并在该对象之外保存这个状态 这样以后就可将该对象恢复到保存的状态 Chain of Responsibility(责任链) 精巧程度 星 应用广泛 星 为解除请求的发送者和接收者之间耦合 而使多个对象都有机会处理这个请求 将这些对象连成一条链 并沿着这条链传递该请求 直到有一个对象处理它 适合用在 一系列handler 的场景下 分为纯和不纯两种 好像女孩儿也可以这么分? Observer(观察者) 定义对象间的一种一对多的依赖关系 以便当一个对象的状态发生改变时 所有依赖于它的对象都得到通知并自动刷新 因为java里有Obserable和Observer 所以通常在java里不会自己设计观察者模式 Command(命令模式) 精巧程度 星 应用广泛 星 将一个请求封装为一个对象 从而可用不同的请求对客户进行参数化 对请求排队或记录请求日志 以及支持可取消的操作 mand模式用来解耦invoker和receiver State(状态模式) 精巧程度 星 应用广泛 星 允许一个对象在其内部状态改变时改变它的行为 对象看起来似乎修改了它所属的类 OO编程如果出现多个相同的if…else条件 应该考虑用state模式重构 work flow的状态器也是基于State模式的 Interpreter(解释器) 精巧程度 N/A 应用广泛 星 给定一个语言 定义它的语法的一种表示 并定义一个解释器 该解释器使用该表示解释语言中的句子 Strategy(策略模式) 精巧程度 星 应用广泛 星 定义一系列的算法 把它们一个个封装起来 并且使它们可相互替换 本模式使得算法的变化可独立于使用它的客户 Iterator(迭代子) Java Collection都可以迭代 在java上不需要格外设计iterator Template Method(模板方法) 精巧程度 星 应用广泛 星 见名知义 太简单了 学过一遍就不会忘 但是这个应用非常广泛! Mediator(仲裁者) 精巧程度 星 应用广泛 星 用来解耦多个peer 个人觉得这个模式多半会让mediator十分臃肿 mediator本身需要有很清晰的设计才能使用 应用场景恐怕也少 Visitor(访问者) 精巧程度 星 应用广泛 星 collection里存一个类系的entry时 使用visitor模式可以避免instance of的使用 更重要的是方便扩展类系 Structure 种 adapter(适配器) 精巧程度 星 应用广泛 星 将一个类的接口转换成客户希望的另外一个接口 适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作 Proxy(代理) 精巧程度 星 应用广泛 星 aop是代理模式的一种发挥 Spring和Hibernate都大量使用proxy 可以引申学学JDK的dynamic proxy 模式简单 略 Bridge(桥梁) 精巧程度 星 应用广泛 星 Bridge在技术上是strategy的进一步发挥 但侧重在实现与抽象的解耦 将抽象部分与它的实现部分分离 使它们都可以独立地变化 Composite 精巧程度 星 应用广泛 星 适用于树状结构 Decorator(装饰) 精巧程度 星 应用广泛 星 在java I/O中广泛使用 为了解决 类爆炸 的问题 Facade(门面) 连个UML图都没有 算神马模式? Flyweight 精巧程度 星 应用广泛 星 分 单纯 复合 两种 本身包含了工厂方法模式 一系列对象如果他们都有某部分属于特定集合 就让他们共享这个特定集合以节省资源 Creational 种 Factory Method(工厂方法) 精巧程度 星 应用广泛 星 两个变种 一个是根据参数创建对象 一个是factory类系对应产品类系 面向接口编程在创建模式的体现 Abstract Factory(抽象工厂) 精巧程度 星 应用广泛 星 只有产品有两个类系的时候才用得上 Builder 精巧程度 星 应用广泛 星 产品分部分 并且build的过程不定的时候考虑用这种模式 是模板模式的一种发挥 Prototype(原型) java有cloneable的支持 所以通常不需要自己设计prototype java用prototype的时候注意深复制浅复制的问题 prototype之外的一个选择是提供一个constructor接受本类型对象作为参数 这个方式更加实用! singleton(单例) 保证一个类仅有一个实例 并提供一个访问它的全局访问点 cha138/Article/program/Java/gj/201311/27396相关参考
知识大全 23种设计模式的Java版--Singleton(单例)
23种设计模式的Java版--Singleton(单例) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
关于Java23种设计模式的有趣见解[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 装饰模
关于Java23种设计模式的有趣见解[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 创建型
关于Java23种设计模式的有趣见解[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! MED
经典:从追MM谈Java的23种设计模式[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 桥
经典:从追MM谈Java的23种设计模式[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设
经典:从追MM谈Java的23种设计模式[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! I
高性能Java设计与开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ——JDBC篇(一
C#开发和使用中的23个技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 怎样定制VC#Dat
浅谈Java网站开发过程中的优势 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java是一种被