首页 > 其他 > 详细

工厂方法模式与抽象工厂模式的区别

时间:2014-01-21 01:31:35      阅读:310      评论:0      收藏:0      [点我收藏+]

工厂方法模式 与 抽象工厂模式的区别


前言:很多程序员分不清楚几个工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)。在前面的博文(工厂方法模式)中,我已经简单说明了简单工厂模式与工厂方法模式的区别,这里我简单归纳说明一下工厂方法模式与抽象工厂模式的区别。这是我理解玩抽象工厂模式后的笔记。


一、  工厂方法部分

1、   工厂方法使用的是类。

2、   用的方法是继承。

3、   利用工厂方法创建对象,需要扩展一个类,并覆盖他的工厂方法。

4、   工厂方法用来创建对象。其实整个工厂方法模式只不过就是通过子类来创建对象。换句话说,工厂方法模式只负责将客户从具体类型汇总解耦。

5、   创建一个产品。

6、   工厂方法模式可以把你的客户代码从需要实例化的具体类中解耦。或者如果你目前还不知道将来需要实例化哪些具体类时,也可以用工厂方法模式。工厂方法模式的使用很简单,只要吧工厂方法继承成子类,并实现工厂方法的工厂就可以了。


二、  抽象工厂模式

1、   抽象工厂模式使用的是对象。

2、   用的方法是对象的组合。

3、   抽象工厂提供一个用来创建产品家族的抽象类型,这儿类型的子类定义了产品被产生的方法。要想使用这个工厂,必须先实例化它,然后将它传入一些针对抽象类型所写的代码中。所以,和工厂方法一样,抽象工厂可以把客户从所使用的实际具体产品中解耦。

优点:即抽象工厂的另一个优点是可以把一群相关的产品集合起来。

4、   创建整个产品家族的模式。

5、   当你需要创建产品家族和想让制造的相关产品集合起来时,你可以使用抽象工厂。


三、  工厂方法模式和抽象工厂模式,这两种模式都是将对象创建的过程封装起来,以便将代码从具体类解耦。


附:当然,这里仅仅是我自己现阶段对两种工厂方法的理解,可能有一些没有说明白或者错误,请斟酌。



如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com


 

工厂方法模式与抽象工厂模式的区别

原文:http://blog.csdn.net/u011331844/article/details/18307919

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!