您的位置:首页 > 其它

设计模式概述

2008-04-07 10:47 260 查看
什么是设计模式?通常会有以下几个定义:
设计模式描述了软件设计过程中某一类常见问题的一般性解决方案。
面向对象设计模式描述了面向对象设计过程中,特定场景下,类与相互通信的对象之间常见的组织关系。
每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次的使用该方案而不必重复劳动。
说到设计模式,首先必须提到的就是GoF,1994年,Erich Gamma, Richard Helm, Ralph Johnson和John Vlissides(合称Gang of Four, GoF)合作出版了一本书《Design Patterns: Elements of Reusable Object-Oriented Software》。这本书首次把设计模式提升到了一个理论的高度。后面陆续又有大师出版了一系列谈论设计模式的书,使用不同语言、从不同角度对设计模式进行了进一步的阐述。其中,影响比较大的还有Robert C. Martin的《Agile Software Development: Principles Patterns and Practices》和James W. Cooper的Introduction to Desgin Patterns in C#》。也许,还可以加上一本最新的《Head First DesignPatterns》。
我曾经听到项目组的同事抱怨前面提到的书太晦涩了,迁怒于翻译的水平,说除了代码之外,基本上不知所云。国内翻译的IT教材,确实有很多翻译的不知所云,但是关于设计模式,却显然不是这样。在我看来,设计模式不是可以“学习”的。它不是一种语法,而更是一些思想,一些经验总结。试想,总结出这些模式的那些大师,是做了无数的项目慢慢积累,才浓缩出这些精华。要真的理解这些精华,也必须有一定的经验积累才行。一个只了解一两种OO语言语法的程序员,是没法真正理解设计模式的。不过,刚开始OO,也不是不可以看看设计模式。也许一时半刻还不能理解,更不会应用到实际项目中去,不过,能在头脑里有些概念,在遇到这些设计模式所提到的问题的场景时,能想起来翻翻书,就很不错了。
GoF提到了23种设计模式,而在Cooper的书中,又加入了一种最简单的创建型模式简单工厂Simple Factory,可以看作是工厂模式的简化。不管是23种还是24种,大家的分类方法都是一致的,都根据设计模式应用的场景,分为三大类:
1. 创建型模式
与类的创建有关的模式,讨论的是如何创建对象不是直接实例化对象,这会使程序在判断给定情况下创建哪一个对象。这样的模式包括:
单件模式(Single Pattern)
抽象工厂模式(Abstract Factory)
建造者模式(Builder Pattern)
工厂方法(Factory Method)
简单工厂模式(Simple Factory)
原型模式(Protype Pattern)
2. 结构型模式
处理类和对象的组合。结构型模式可以将一组对象组合成更大的结构,例如复杂的用户界面或报表数据。这些模式包括:
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
装饰模式(Decorator Pattern)
组合模式(Composite Pattern)
外观模式(Façade Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
3.行为型模式
对类和对象怎样交互和分配职责进行描述。行为型模式定义系统内对象间的通信,以及复杂程序中的流程控制。这些模式包括:
模版方法模式(Template Method)
命令模式(Command Pattern)
迭代器模式(Iterator Pattern)
观察者模式(Oberver Pattern)New!
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
解释器模式(Interpreter Pattern)
状态模式(State Pattern)
策略模式(Strategy Pattern)
职责链模式(Chain of Responsibility)
访问者模式(Visitor Pattern)
[align=left] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: