设计模式
文章平均质量分 78
上善若水-知行合一
将java进行到底!
展开
-
DECORATOR 装饰模式
DECORATOR 装饰模式 对象结构性模式1、意图动态地给一个对象增加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。2、别名包装器Wrapper3、动机 有时我们希望给某对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗转载 2017-09-21 20:34:25 · 562 阅读 · 0 评论 -
什么是设计模式
Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式,只是在面向对象的解决方案里,我们用对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。 一般转载 2017-10-04 11:01:34 · 501 阅读 · 0 评论 -
为什么要学习设计模式?
设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。你必须找到相关的对象,以适当的粒度将它们归类,再定义类的接口和继承层次,建立对象之间的基本关系。你的设计应该对手头的问题有针对性,同事对将来的问题和需求也要有足够的通用性。你也希望避免重复设计或极可能少做重复设计。有经验的面向对象设计者会告诉你,要一下子就得到复用性和灵活性好的设计,即使不是不可能的至少也是非常困难的。一个设计在最终完成之前常要被复用好几次,而且每一次都有所修改。转载 2017-10-04 10:41:37 · 663 阅读 · 3 评论 -
Visitor 访问者模式 ----对象行为型模式
1、意图 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。2、动机 考虑一个编译器,他将源程序表示为一个抽象语法树。该编译器需在抽象语法树上实施某些操作以进行“静态语义”分析,例如检查是否所有的变量都已经被定义了。它也需要生成代码。因此它可能要定义许多操作以进行类型检查、代码优化、流程分析,检转载 2017-10-02 18:43:18 · 1312 阅读 · 0 评论 -
Template Method 模板方法模式 ----类行为型模式
1、意图 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。转载 2017-10-02 15:36:45 · 363 阅读 · 0 评论 -
Strategy 策略模式 --对象行为型模式
1、意图 定义一系列的算法,把它们一个个封装起来,并且使他们可相互替换。本模式使得算法可独立于使用它的客户而变化。转载 2017-10-02 09:45:10 · 324 阅读 · 0 评论 -
State 状态模式 ----对象行为型模式
1、意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。转载 2017-10-01 21:02:03 · 365 阅读 · 0 评论 -
Observer 观察者模式 ----对象行为型模式
1、意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。2、别名 依赖(Dependents),发布-订阅(Publish-Subscribe)3、动机 将一个系统分割成一系列相互协作的类有一个常见的副作用:需要维护相关的对象间的一致性。我们不希望为了维持一致性而转载 2017-09-30 16:06:11 · 480 阅读 · 0 评论 -
Memento 备忘录模式 ----对象行为型模式
1、意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在这个对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。转载 2017-09-30 09:51:08 · 316 阅读 · 0 评论 -
Mediator 中介者模式 --对象行为型模式
意图: 用一个中介对象来封装一系列的对象交互。中介者使各交互对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互。转载 2017-09-29 11:53:48 · 364 阅读 · 1 评论 -
Iterator 迭代器模式 --对象行为型模式
1、意图 提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。转载 2017-09-28 17:02:54 · 395 阅读 · 2 评论 -
COMPOSITE(组合)模式
composite模式 组合模式 GOF 设计模式将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。转载 2017-09-19 20:46:56 · 1099 阅读 · 0 评论 -
COMMAND 命令模式 --对象行为型模式
1、意图 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。转载 2017-09-28 10:54:56 · 861 阅读 · 0 评论 -
CHAIN OF RESPONSIBILITY 职责链模式 --对象行为型模式
1、意图 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。转载 2017-09-27 16:13:26 · 365 阅读 · 0 评论 -
行为型模式
行为模式涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述他们之间的通信模式。这些模式刻画了在运行时难以跟踪的复杂的控制流。它们将你的注意力从控制流转移到对象间的联系方式上来。转载 2017-09-26 20:04:18 · 328 阅读 · 0 评论 -
Proxy 代理模式 对象结构型模式
1、意图 为其它对象提供一种代理以控制对这个对象的访问。转载 2017-09-25 16:31:47 · 554 阅读 · 1 评论 -
Flyweight 享元模式 --对象结构型模式
1、意图 运用共享技术有效地支持大量细粒度的对象。转载 2017-09-24 14:20:56 · 349 阅读 · 0 评论 -
FACADE 外观模式 --对象结构型模式
Facade模式 外观模式 对象结构型模式1、意图 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。转载 2017-09-23 16:46:24 · 326 阅读 · 0 评论 -
如何描述设计模式
我们怎样描述设计模式呢?图形符号虽然很重要也很有用,但却远远不够,它们只是将设计过程的结果简单记录为类和对象之间的关系。为了达到设计复用,我们必须同时记录设计产生的决定过程、选择过程和权衡过程。具体的例子也是很重要的,它们让你看到实际的设计。 我们将用统一的格式描述设计模式,每一个模式根据以下的模板被分成若干部分。模板具有统一的信息描述结构,有助于你更容易地学习、比较和使用设计模转载 2017-10-04 11:20:45 · 895 阅读 · 0 评论