abstract Factory pattern
Posted 努力追上曾经的自己
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了abstract Factory pattern相关的知识,希望对你有一定的参考价值。
1,注意静态工厂(简单工厂模式)、工厂方法、抽象工厂的区别
静态工厂是根据客户端传入的参数,使用工厂类来创建相应的产品接口的具体实现子类对象。比如,需要需要创建一个工具类,该工具类是为了调用外部系统,但外部系统的版本有差异,需要根据不同版本的外部系统,生成相应的工具类。这个时候如果外部系统不同版本的数量比较少,此时使用静态工厂是合适的。
注意静态工厂模式只有一个工厂类。
工厂方法是每一个产品都有一个工厂类,存在一个工厂类父类,客户端直接创建具体的工厂类,然后生产相应的产品。工厂方法把简单工厂的内部逻辑判断移到了客户端进行,由客户端决定使用哪一个工厂类。
工厂方法只有一个抽象产品类,所以具体的工厂类只能生产一种产品。
抽象工厂模式在工厂方法模式下进一步扩展以实现一般化,抽象工厂模式中具有多个抽象产品类,这样具体工厂就可以生产多个产品。客户端通过生产具体工厂对象,然后调用工厂对象的不同方法来实现生产不同的产品。工厂方法时具体工厂类对应具体一种产品类,而抽象工厂模式是具体工厂类的某个函数对应一种具体的产品类
应用场景
关于这三者的更多信息见:
http://blog.csdn.net/sinat_35512245/article/details/54890711
抽象工厂的实例请参考:
http://www.cnblogs.com/lilin0719/p/5313886.html
以上是关于abstract Factory pattern的主要内容,如果未能解决你的问题,请参考以下文章