工厂模式总结

来源:互联网 发布:php 获取请求头部信息 编辑:程序博客网 时间:2024/04/28 15:21

 简单工厂,工厂方法,抽象工厂模式。

1、为什么要用到工厂?

在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,从而保持系统中“其它依赖该对象的对象”不随着需求的改变而改变。

定义一个用户创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。

2、简单工厂到工厂方法:

工厂方法,当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也不需要修改客户端,很好的符合了"开放-封闭"原则。而简单工厂模式在添加新产品对象后不得不修改工厂方法,扩展性不好。

3.从工厂方法到抽象工厂:

两个工厂其实没有什么本质区别,核心都是一个抽象工厂类,其子类负责创建工作。区别就是这个创建工作,工厂方法一般都是创建单个产品对象,二抽象工厂则更具一般性,创建多个产品对象,或者叫产品族。 这多个产品对象有关联。具体关联是体现在这些产品类某些成员可以调用另一些产品类的某些成员。在产品类的接口中可以有体现。

(部分是个人理解,需要多实践)

4、结构:

简单工厂:创建具体产品的工厂类(可能多个),产品类,产品类接口,调用类,客户端

工厂方法:+抽象工厂类。

5、实例:

具体可参考:http://www.cnblogs.com/promise-7/archive/2012/05/10/2494176.html,http://www.cnblogs.com/libingql/archive/2012/12/09/2809754.html,

http://terrylee.cnblogs.com/archive/2005/12/13/295965.html,http://terrylee.cnblogs.com/archive/2006/01/04/310716.html

自己实践:AbstractFactory基本框架。AbstractFactoryKFC,AbstractFactorySalary,FactoryMethodLog



0 0
原创粉丝点击