四人帮设计模式之精简理解

设计模式绝对不是灵丹妙药,但是合适的地点合适的时间使用设计模式绝对能事半功倍。

就像武林中的招式,开始习武只能见招学招,但是一旦融汇贯通,便能无招胜有招,杀伤力与优雅并存。

我还在见招学招的阶段,所以暂且总结一下日常编码中用过的或者有点理解的模式,以作备忘。

1.简单工厂

一个工厂生成多种类,根据输入判别需要生成的类。最简单最直观的工厂。

2.策略模式

要调用的方法定义成接口,策略实现接口即可,不同的策略用不同的类来实现。

3.装饰模式

将既有的类封装在另一个类中,从被封装的类返回的数据惊醒加工处理再返回,所谓打扮一下数据。

4.代理模式

实际工作的类被代理类隔离起来,利用操作代理类来实现对实际的类的操作。

5.工厂方法模式

对比简单工厂,简单工厂是把判断放在自己的函数中,工厂产品的关系是一对多。

工厂方法需要抽象出一个接口,然后对应不同的产品分别做一个工厂,每个工厂之对应一种产品,所以是一对一。

6.原型模式

7.模板方法模式

8.外观模式

9.建造者模式

10.观察者模式

就是常见的event-handler模式,或者callback模式。

11.抽象工厂模式

对比工厂模式,工厂模式是一个工厂对应一个产品,工厂实现了创建这一个产品的接口。

抽象工厂是一个工厂对应同一系列的产品,工厂实现创建同一系列的产品的接口,然后有多个工厂对应不同的系列。

可以利用配置文件,反射技术来扩展抽象工厂,使得切换抽象工厂,而不用改动代码。

12.状态模式

13.适配器模式

有点像中介模式。

14.备忘录模式

15.组合模式

16.迭代器模式

C#中实现IEnumerable接口返回迭代器都是此模式。通常迭代器包含一个数组,一个游标,一个next函数,一个reset函数。

17.单例模式

又叫单件模式,是指在一个appdomain中只存在唯一实例,通常作为全局服务,全局工具使用。

18.桥接模式

19.命令模式

20.职责链模式

各干各的,互不干扰。

21.中介者模式

22.享元模式

23.解释器模式

24.访问者模式

未完待续。

posted @ 2014-06-10 22:15  AndyZeng  阅读(1667)  评论(0编辑  收藏  举报