【转】一句话的设计模式

原文地址:http://www.cnblogs.com/lzhlyle/p/4696645.html

1. 创建型:

(1)单例:只需一个实例时考虑。

(2)工厂方法:一般先用工厂方法解决对象创建问题。

(3)抽象工厂:当工厂方法无法满足多系列问题时,再重构为抽象工厂。

(4)建造者:多个部件的建造实现相同,只是所需部件、建造顺序不同时考虑。

(5)原型:在初始化信息不发生变化时考虑。

2. 结构型:

(1)适配器:让接口不相容的类能协同工作。(亡羊补牢)

(2)装饰:动态增加单个对象的额外职责,比生成子类更灵活。

(3)桥接:使继承关系更改为组合关系,使两者可独立变化。(未雨绸缪)

(4)组合:用树状结构表示“整体-部分”的层次关系,使单个对象(叶节点)与组合对象(枝节点)的使用具有一致性。

(5)享元:为运用共享技术,支持大量细粒度对象,节省开销。

(6)代理:控制对单个对象的访问。

(7)外观:子系统的高层接口,避免两个类直接关系的第三者。

3. 行为型:

(1)观察者:一对多依赖关系,一端变化、多端得到通知并自动更新。(目标与观察者可实现弱耦合)

(2)模板方法:继承+重写解决代码重复问题。

(3)命令:将请求发送者与具体实现者解耦,可对请求排列、取消、重做,支持事务。(多请求,单处理)

(4)职责链:将处理者排成链,沿链传递请求。(单请求,多处理)

(5)状态:当对象内状态改变而执行不同操作时考虑,状态转移逻辑不在if/switch中,而在各子类之间,增/改状态和状态转换较容易。

(6)解释器:若某特定问题发生的频率足够高时考虑,需定义文法表示与解释器本身。

(7)中介者:由中介封装一系列对象交互,减少对象间耦合,利于复用。(朋友多)

(8)访问者:当Element较稳定、Visitor易增加时考虑。(朋友在精不在多)

(9)策略:将一系列算法逐个封装并可相互替换,易于切换、理解、扩展。

(10)备忘录:不破坏封装,又要取该对象内状态,且要求状态还原时考虑。(保持封装边界)

(11)迭代器:将对集合的访问与遍历从集合对象中分离出来到迭代器中。

时间: 2024-08-24 00:40:40

【转】一句话的设计模式的相关文章

一句话评论设计模式六大原则

原则,故名思议则是本质的意思.所谓擒贼先擒王,研究设计模式自然要先了解设计原则,所有的模式都是在这些原则的基础之上发展起来的,有的是侧重一个,有的是多个都有所涉及.看完设计模式之后,我感觉到每个模式都有这些原则的影子,还渗透着面向对象的三大属性,也觉得这些原则也都有相通之处,,正是有了他们才使我们由代码工人转为艺术家.下面我来点评一下六大原则,望各位拍砖: 1.单一职责原则(Single Responsibility Principle,简称SRP)      单一职责原则,就一个类而言,应该仅

一句话的设计模式

如题,实际上,我想这是很困难的. 除非——只是为了给自己做一个提醒,能够看一眼就快速回想起该设计模式的种种记忆. 下列是我之前在学习<大话设计模式>时做的笔记总结,当中有部分措辞来自其作者程杰.(非常感谢他为神秘的设计模式搭建了如此平滑的学习通道) 1. 创建型: (1)单例:只需一个实例时考虑. (2)工厂方法:一般先用工厂方法解决对象创建问题. (3)抽象工厂:当工厂方法无法满足多系列问题时,再重构为抽象工厂. (4)建造者:多个部件的建造实现相同,只是所需部件.建造顺序不同时考虑. (5

一句话的设计模式(收藏)

本自转载自:http://www.cnblogs.com/lzhlyle/p/4696645.html 如题,实际上,我想这是很困难的. 除非——只是为了给自己做一个提醒,能够看一眼就快速回想起该设计模式的种种记忆. 下列是我之前在学习<大话设计模式>时做的笔记总结,当中有部分措辞来自其作者程杰.(非常感谢他为神秘的设计模式搭建了如此平滑的学习通道) 1. 创建型: (1)单例:只需一个实例时考虑. (2)工厂方法:一般先用工厂方法解决对象创建问题. (3)抽象工厂:当工厂方法无法满足多系列问

一句话的设计模式(转)

下列是我之前在学习<大话设计模式>时做的笔记总结,当中有部分措辞来自其作者程杰.(非常感谢他为神秘的设计模式搭建了如此平滑的学习通道) 1. 创建型: (1)单例:只需一个实例时考虑. (2)工厂方法:一般先用工厂方法解决对象创建问题. (3)抽象工厂:当工厂方法无法满足多系列问题时,再重构为抽象工厂. (4)建造者:多个部件的建造实现相同,只是所需部件.建造顺序不同时考虑. (5)原型:在初始化信息不发生变化时考虑. 2. 结构型: (1)适配器:让接口不相容的类能协同工作.(亡羊补牢) (

(转)一句话的设计模式

如题,实际上,我想这是很困难的. 除非——只是为了给自己做一个提醒,能够看一眼就快速回想起该设计模式的种种记忆. 下列是我之前在学习<大话设计模式>时做的笔记总结,当中有部分措辞来自其作者程杰.(非常感谢他为神秘的设计模式搭建了如此平滑的学习通道) 1. 创建型: (1)单例:只需一个实例时考虑. (2)工厂方法:一般先用工厂方法解决对象创建问题. (3)抽象工厂:当工厂方法无法满足多系列问题时,再重构为抽象工厂. (4)建造者:多个部件的建造实现相同,只是所需部件.建造顺序不同时考虑. (5

一句话说说java设计模式

设计模式 看到标题,大家是不是觉得不可思议,java的23种设计模式那么‘复杂’,那么‘难懂’,用一句话怎么说的明白呢? 首先,各位看官不要误解,近来在回头看设计模式,之前都看过,但时间是把‘杀猪刀’,更是瓶‘健忘药’,特别是对于‘程序猿’来说,有些东西一周不看,就会‘如隔三秋’,本篇旨在用一句话描述一种设计模式,目的仅仅是帮助我们记住每种设计模式是用来做什么的,仅此而已! 这次的回故让我对设计模式又深入明白了几分,但这里面的水真的太深,理论是一方面,实践才能出真知. 只有理论联系实践,才能理解

详解设计模式六大原则

设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的:设计模式使代码编制真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样. 借用并改编一下鲁迅老师<故乡>中的一句话,一句话概括设计模式: 希望本无所谓有,无所谓无.这正如coding的设计模式,其实coding本没有设计模式,用的人多了,也便成了设计模式 v六大原

程序设计模式 —— 抽象工厂模式

前言 工厂?意思是创建变量的厂子?要这个干什么?为什么不直接new new new!! 定义:为创建一组相关或相互依赖的对象提供一个接口,而无需指定他们的具体类. 但是,从现在开始,请不要再使用new. “What?不使用new?你怎么写C++程序,怎么写Java程序?” 我应该如何阅读? 本文将使用优雅的文字风格来告诉你什么是工厂模式. 注意: 1.在阅读本文之前请保证你已经掌控了 面对对象的思想与 多态的基本概念,否则将难以理解. 2.本文实现将用C++实现,你不一定必须学会C++,这些代码

程序设计模式 —— State 状态模式

我应该如何阅读? 本文将使用优雅的文字风格来告诉你什么是状态模式. 注意: 1.在阅读本文之前请保证你已经掌控了 面对对象的思想与 多态的基本概念,否则将难以理解. 2.本文实现将用C++实现,你不一定必须学会C++,这些代码都有非常丰富的注释和简单的语法. 3.请不要跳着看,除非你已经学会. 那么现在开始吧 或许你会以为是类的各种状态,其实差不多.但是还有各种行为 允许一个对象在其内部状态改变时改变它的行为.实例化的对象看起来似乎修改了它的类 首先,状态,顾名思义你应该就差不多明白.它可以表示