您的位置:首页 > 其它

设计模式------抽象工厂模式(AbstractFactoryPattern)

2014-12-08 21:37 337 查看
我写过简单工厂模式(SimpleFactoryPattern)和工厂方法模式(FactoryMethodPattern)的对比的博客。现在学到抽象工厂模式(AbstractFactoryMethod)更是让人大开眼界。

先上抽象工厂模式(AbstractFactoryPattern)的UML类图



我认为抽象工厂模式(AbstractFactoryPattern)和工厂方法模式(FactoryMethodPattern)的唯一区别就是FactoryA和FactoryB可以创建多个抽象产品。

下面列出来具体区别:

简单工厂模式:

一个抽象产品类,可以派生出多个抽象产品类;
一个抽象工厂类,可以派生出多个具体工厂类;
每个具体工厂类只能创建一个具体产品类的实例。

抽象工厂模式:

多个抽象产品类,每个抽象产品类可以派生出多个具体产品类;
一个抽象工厂类,可以派生出多个具体工厂类;
每个具体工厂类可以创建多个具体产品类的实例。

区别:

工厂方法模式(FactoryMethodPattern)只有一个抽象产品类,而抽象工厂模式(AbstractFactoryPattern)有多个;
工厂方法模式(FactoryMethodPattern)的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式(AbstractFactoryPattern)可以创建多个。

抽象工厂模式(AbstractFactoryPattern)的缺点:

当用户需求来自增加功能,需要改好几处才能实现,修改代码较多。

当然如果想要改进抽象工厂模式(AbstractFactoryPattern)也是可以的。
可以利用C#特有的反射技术、或反射+配置文件都可以实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  抽象工厂模式