一、UML图
二、概念
适配器模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原来由于接口不兼容而不能一起工作的那些类可以一起工作。
三、说明
(1)在想使用一个已存在的类,但是如果他的接口,也就是它的方法和你的要求不相同时,就应该考虑用适配器模式。
(2)用了适配器模式,客户代码可以统一调用统一接口就行了,这样可以更简单,更直接,更紧凑。...
分类:
编程语言 时间:
2014-12-21 18:00:58
阅读次数:
211
之前有看过《ruby设计模式》,不过渐渐的都忘记了。现在买了一个大话设计模式,看起来不是那么枯燥,顺便将代码用ruby实现了一下。# -*- encoding: utf-8 -*-#运算类class Operation attr_accessor :number_a,:number_b ...
分类:
其他好文 时间:
2014-12-21 16:29:58
阅读次数:
143
一、UML图
二、概念
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。
三、说明
角色:
(1)Subject类:可以翻译为主题或者抽象通知者,一般用一个抽象类或者一个接口实现。他把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接...
分类:
编程语言 时间:
2014-12-21 12:44:53
阅读次数:
288
一、UML图
二、概念
建造者模式(Builder):将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。
三、说明
角色:
(1)Builder:是为创建一个Product对象的各个部件指定的抽象接口。
(2)ConcreteBuilder:是具体创建者,实现Builder接口,构造和装配各个部件。
(3)Product:具体的产品角色...
分类:
编程语言 时间:
2014-12-18 17:04:49
阅读次数:
166
一、UML图
二、概念
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
三、说明
Q:外观模式在什么时候使用呢?
A:分为三个阶段:
(1)首先,在设计初期阶段,应该要有意识的将不同的两个层分离。
(2)第二,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,大多数的模式使用时也会产生很...
分类:
编程语言 时间:
2014-12-18 00:20:20
阅读次数:
164
一、UML图
二、概念
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
三、说明
角色:
(1)AbstractClass:是抽象类,其实也就是一个抽象模板,定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的框架,而逻辑的组成步骤在相应的抽象操作...
分类:
编程语言 时间:
2014-12-17 22:38:32
阅读次数:
258
一、UML图
二、概念
原型模式(Prototype):用原型示例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
三、说明
(1)原型模式实际上就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。
(2)一般在初始化的信息不发生变化的情况下,克隆是最好的办法。这既隐藏了对象创建的细节,有对性能是大大的提高。因为如果不用Clone,每次new,都需要执行...
分类:
编程语言 时间:
2014-12-17 18:40:31
阅读次数:
247
一、UML图
二、概念
代理模式:为其他对象提供一种代理以控制对这个对象的访问。
三、应用场景
(1)远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
(2)虚拟代理,是根据需要创建开销很大的对象。通过他来存放实例化需要很长时间的真实对象。例如:图片加载的时候。
(3)安全代理,用来控制真是对象访问时的权限。
(4)智能指...
分类:
编程语言 时间:
2014-12-17 00:21:54
阅读次数:
268
最近在看设计模式,故事好玩是好玩,可是代码也很多啊,有时候看图不太理解,为了让自己有兴趣并且坚持下去,在第一遍宏观的看了一遍之后,把23种设计模式进行了一下分类,然后再找类似的模式一起学习,通过对比学习再理解,确实是容易了一些。先学的创建型模式里的工厂三姐妹,一块学习这三个模式,比较一下它们的优缺点,知道什么时候要用什么模式。
一、概念介绍
1、简单工厂:
2、工厂方法:
3、...
分类:
其他好文 时间:
2014-12-14 15:50:51
阅读次数:
164
一、UML图
二、概念
装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。
三、说明
角色:
(1)Component是定义一个对象,可以给这些对象动态地添加职责。
(2)ConcreteComponent是定义了一个具体的对象,也可以给这个对象增加一些职责。
(3)Decorator,装饰抽象类,继承了Component,从外类来扩展...
分类:
编程语言 时间:
2014-12-11 15:48:56
阅读次数:
207