设计模式(一)

参考文档:http://www.cnblogs.com/maowang1991/archive/2013/04/15/3023236.html

一、设计模式的分类

总体来说设计模式分为三大类:

  • 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

  • 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

  • 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

1.1简单工厂设计模式

“简单工厂方法模式”
1.创建一个接口
2.对多个类(x1,x2,x3)继承以上接口并实现
3.创建一个工厂类
4.定义一个方法,根据传入名称判断创建类对象(x1,x2,x3)

1.2多个工厂方法模式

“多个工厂方法模式”
1.同上
2.同上
3.同上
4.直接创建方法a1,a2,a3,分别在方法中创建类对象x1,x2,x3

改进原因,传递的字符串出错,则不能创建对象;
直接调用方法不会出错

1.3静态工厂方法模式

改进原因:不需要创建实例,直接调用即可。

2 抽象工厂模式(Abstract Factory)

“抽象工厂模式”
工厂方法模式有一个问题——类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则

就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码

如果你现在想增加一个功能:发及时信息,则只需做一个实现类,实现Sender接口,同时做一个工厂类,实现Provider接口,就OK了,无需去改动现成的代码。这样做,拓展性较好!

原型模式
“原型模式”

“原型模式带原型管理器”