专注

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

本文是自己对工厂模式的学习总结。

具体可参考:

TerryLee的 .NET设计模式(3):抽象工厂模式(Abstract Factory)

 

http://www.cnblogs.com/Terrylee/archive/2005/12/13/295965.html

和 由浅入深学“工厂模式”(1)

目前常用的工厂方法包括简单工厂模式(不属于Gof23种设计模式),工厂方法和抽象工厂方法。这三种方法有各自的适用场景,也有缺点。

简单工厂模式适用于对简单对象的实例化,它的缺点就是可扩展性差,如果要增加新的逻辑对象,必须修改工厂类,违背了开放,封闭原则。简单工厂模式加上反射可以解决这个问题。

工厂方法是对简单工厂的进一步改进和抽象,它提出抽象工厂和抽象产品,将具体的实例化推迟到具体工厂来实现,有更高的可扩展性。

抽象工厂创建一系列相关或相互依赖的产品。

总结:用最简单的话来概括就是,简单工厂只有一个具体工厂类来创建一种基类的多个不同派生类,工厂方法就是有多个派生于一个基类的具体工厂类,每个具体工厂只生产一种基类的一个派生类,抽象工厂也是只有一个工厂基类,但是每个具体工厂生产多个相关基类的各一个派生类。

posted on 2012-02-15 13:58  中金黄金  阅读(110)  评论(0编辑  收藏  举报