工厂模式分三种:简单工厂模式、工厂方法模式 和 抽象工厂模式
a、简单工厂模式:通过给工厂设置参数,得到需要的产品实例;
优点:客户端不需要修改代码。
缺点: 当需要增加新的运算类的时候,不仅需新加运算类,还要修改工厂类,违反了开闭原则。
b、工厂方法模式:一个工厂类派生出多个产品工厂类,再通过产品工厂类,生成具体的产品实例;
好处:增加一个运算类(例如N次方类),只需要增加运算类和相对应的工厂,两个类,不需要修改工厂类。
缺点:增加运算类,会修改客户端代码,工厂方法只是把简单工厂的内部逻辑判断移到了客户端进行。
c、抽象工厂模式:一个抽象工厂派生出多个工厂类,这些工厂类可以生产多个产品;它是集合了前面两个模式的
a、简单工厂模式:通过给工厂设置参数,得到需要的产品实例;
优点:客户端不需要修改代码。
缺点: 当需要增加新的运算类的时候,不仅需新加运算类,还要修改工厂类,违反了开闭原则。
b、工厂方法模式:一个工厂类派生出多个产品工厂类,再通过产品工厂类,生成具体的产品实例;
好处:增加一个运算类(例如N次方类),只需要增加运算类和相对应的工厂,两个类,不需要修改工厂类。
缺点:增加运算类,会修改客户端代码,工厂方法只是把简单工厂的内部逻辑判断移到了客户端进行。
c、抽象工厂模式:一个抽象工厂派生出多个工厂类,这些工厂类可以生产多个产品;它是集合了前面两个模式的
有点,将相关联的一些产品通过简单工厂的方式归并,把归并后的类以工厂方法的形式呈现出来
http://blog.chinaunix.net/uid-25958655-id-4243289.html