设计模式(一)
参考文档: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了,无需去改动现成的代码。这样做,拓展性较好!
原型模式