23种设计模式

来源:互联网 发布:ipad编程程序 编辑:程序博客网 时间:2024/06/14 23:56

一、什么是设计模式

设计模式是一套被反复利用、多数人知晓的、经过分类编目的、代码设计经验总结。(注意:模式不是代码而是某类问题的通用设计解决方案)

二、为什么使用设计模式

使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

三、设计模式提出者

GOF 小组

①Erich Gamma       ②Richard Helm        ③Ralph Johnson           ④John Vlissides

四、23种设计模式

     三大类:

           (1)创建型模式(对象实例化的模式。创建型模式解耦了对象的实例化过程)

1.工厂方法模式:一个工厂类根据传入的参量决定创建出哪一种产品类的实例

2.抽象工厂模式:创建相关或依赖对象的家族,而无须明确指定具体类

3.单例模式:确保一个类最多只能有一个实例,并提供一个全局访问点

4.建造者模式:封装一个复杂对象的构建过程,并可以按步骤构建

5.原型模式:通过复制现有的实例来创建型的实例

           (2)结构型模式(把类和对象结合在一起形成更大的结构)

1.适配器模式:将一个类的方法接口转换成客户希望的另一个接口

2.装饰模式:动态的给对象添加新的功能

3.代理模式:为其他对象提供一个代理以控制这个对象的访问

4.外观模式:提供统一的方法来访问子系统的一群接口

5.桥接模式:将抽象部分与它实现部分分离,使他们都可以独立的变化

6.组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构

7.享元模式:通过共享技术有效地支持大量细粒度的对象

           (3)行为型模式    (类和对象如何交互,及划分责任和算法)

1.策略模式:定义一系列类的算法,把他们封装起来,并使他们可相互替换

2.模板方法模式:定义一个算法结构,而将一些步骤延迟到子类中实现

3.观察者模式:对象间的一对多的依赖关系

4.迭代子模式:一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构

5.责任链模式:请求发送者和接受者之间解耦,使得多个对象都有机会处理这个请求

6.命令模式:将命令请求封装为一个对象,使得可用不同的请求来进行参数化

7.备忘录模式:在不破坏封装性的前提下,保存对象的内部状态

8.状态模式:允许一个对象在其内部状态改变是改变他的行为

9.访问者模式:在不改变的数据结构的前提下,增加作用于一组对象元素新的功能

10.中介者模式:用一个中介对象来封装一系列的对象交互

11.解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器

原创粉丝点击