您的位置:首页 > 其它

设计模式笔记(转载)

2010-09-19 12:55 447 查看

From Gossip@caterpillar

非关语言: 设计模式


程式设计是思维具体化的一种方式,是思考如何解决问题的过程,设计模式是在解 决问题的过程中,一些良好思路的经验集成,最早讲设计模式,人们总会提到 Gof 的著作,它最早将经典的 23 种模式集合在一起说明,对后期学习程式设计,尤其是对从事物件导向程式设计的人们起了莫大的影响。

后来设计模式一词被广泛的应用到各种经验集成,甚至还有反模式(AntiPattern),反模式教导您如何避开一些常犯且似是而非的程式设计思维。

这边的话将整理一些设计模式学习心得,实作的部份是使用Java,因而您会看到一些与 Gof 模式不同的图及实作方式,这是为了善用一些Java本身的特性,至于C++的实作方面,Gof 的书已经给了不少的例子。

在一些模式的实作上,您会发现我用了介面(interface)来取代抽象类别(Abstract class),这与原先的Gof书中的范例会不尽相同,这是因为在C++中没有介面,一个完全没有实作任何方法的抽象类别,根据当时描述的主题特性,可以 的话会将之换为介面,在语义上会较符合Java语言的特性,但是您要知道的是,介面与完全没有实作任何方法的抽象类别在某些时候是可以互换的。

在这边所看到的 UML 图都是使用 Jude 绘制的,Jude 是一个纯 Java 撰写的 UML 工具程式,可运行与 Windows、Linux 等多个平台,体积小,使用简易。

Gof 模式 以下的设计模式则是我个人从 Gof 学习中的个人体会与实作,并增加几个导入或衍生的简单模式。

Creational 模式

物件的产生需要消耗系统资源,所以如何有效率的产生、管理 与操作物件,一直都是值得讨论的课题, Creational 模式即与物件的建立相关,在这个分类下的模式给出了一些指导原则及设计的方向。

Simple Factory 模式

Abstract Factory 模式

Builder 模式

Factory Method 模式

Prototype 模式

Singleton 模式

Registry of Singleton 模式

Structural 模式

如何设计物件之间的静态结构,如何完成物件之间的继承、实 现与依赖关系,这关乎着系统设计出来是否健壮(robust):像是易懂、易维护、易修改、耦合度低等等议题。Structural 模式正如其名,其分类下的模式给出了在不同场合下所适用的各种物件关系结构。

Default Adapter 模式

Adapter 模式 - Object Adapter

Adapter 模式 - Class Adapter

Bridge 模式

Composite 模式

Decorator 模式

Facade 模式

Flyweight 模式

Proxy 模式(一)

Proxy 模式(二)

Behavioral 模式

物件之间的合作行为构成了程式最终的行为,物件之间若有设 计良好的行为互动,不仅使得程式执行时更有效率,更可以让物件的职责更为清晰、整个程式的动态结构(像是物件调度)更有弹性。

Chain of Responsibility 模式

Command 模式

Interpreter 模式

Iterator 模式

Mediator 模式

Memento 模式

Observer 模式

State 模式

Strategy 模式

Template Method 模式

Visitor 模式

多执行绪模式 在很多应用中都会使用多执行绪,尤其是在Web应用中,多执行绪以 Gof 整理的模式为基础,考量多执行绪环境中,如何组合这些基本模式来完成多执行绪安全要求。

Guarded Suspension 模式

Producer Consumer 模式

Worker Thread 模式

Thread-Per-Message 模式

Future 模式

Read-Write-Lock 模式

Two-phase Termination 模式

Thread-Specific Storage 模式

参考资料 以下是以Java实作设计模式的介绍网站,从下面的连结开始,当中您可以找到更多设计模式的资源。

Huston Design Pattern

The Design Patterns Java Companion

板 桥里人的 Java 设计模式学习心得

UML 软件工程组织
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: