工厂模式

从工厂模式衍生出来三种相似而又有所不同的工厂模式:

1.简单工厂模式,这中有人说它是一种编程习惯,而不是设计模式;

2.抽象工厂模式,提供一个接口,用于创建相关或依赖的家族。

3.工厂方法模式,就是定义一个创建对象的接口,但是有子类决定到底要实现哪一个具体的实例。把定义实例的时间推迟到子类中;

这三种应该是统一的,就是都定义一个接口,为客户创建实例选择不同的方法,而不需要更改代码,能够在不破坏核心代码的时候,替换相关的类实例。也就是要遵守设计原则:要依赖抽象,而不要依赖与具体的类。


而要遵守这个原则,可以从下面的几个方面来考虑:

1.任何类的指针(c++实现)都一定是指向接口即抽象类,利用类的多态性,实现动态绑定;

2.任何类的继承一定是来自接口或者抽象类,而不是具体类,减少依赖;

3.不要覆盖基类中已经实现的方法(还没有体会);


说白了,就是有客户,和各种不同的产品,工厂就是客户与产品通信的接口,产品依赖工厂,客户也要依赖工厂:

下面以一个比萨的工厂的设计与实现来说明工厂模式:


                                                                               



posted @ 2011-08-01 22:54  李广志  阅读(107)  评论(0编辑  收藏  举报