1.Factory Method (工厂方法模式、虚构造子模式、多态工厂模式)

Factory Method (工厂方法模式、虚构造子模式、多态工厂模式):

     定义创建对象的接口,并由派生类决定那一个类来创建实例。即工厂方法将创建对象的责任委托(延迟)到了派生类创建。

 

适用情况:

1.当一个类无法事先知道她所必须创建的对象的类的时候。

2.当一个类要让其派生类决定构建对象时。

3.当类将创建对象的职责委托给多个协助他的派生类之一,同时你希望通过所委托的派生类来集中管理对象创建逻辑时。

 

     由此可见,此模式将对象和对象创建方法分离,特别是当对象包含复杂的创建逻辑时,这种分离使得创建对象的逻辑可以移出该对象并封装在一个工厂类中。这样通过重新定义一个抽象的接口(抽象类和对象接口),就可以管理封装了不同创建逻辑的具体工厂。只要一个应用系统调用接口提供的工厂方法,就可以让派生类构建需要的产品对象,而无需知道这些对象的类。

 

模式结构:

1.抽象产品(CProduct):定义工厂方法所构建产品对象的接口。是具体产品类的公共基类或共有接口。

2.具体产品(CConcreteProduct):是实现抽象产品对象的接口。也是工厂方法最终创建的产品实例。

3.抽象工厂(CFactory):声明工厂方法,该方法返回特定产品的对象。(模式核心)通过调用抽象工厂的一个工厂方法创建了一个产品对象。

4.具体工厂(CConcreteFactory):是实现抽象工厂接口的具体类,即通过覆盖Factory的工厂方法并返回具体产品的实例。

 

uml图:回头再上(不好意思)。还没有画好。

 

代码模板:回头上。呵呵

 

//由于个人打字速度画图的速度,所以,大家看到的只是文字。回头有时间在将图附上。至于模板代码本人回头将以c++源码的方式打包奉上,正在整理之中,具体时间由于工作比较忙,所以不确定,但是鄙人会努力的。呵呵

 

posted on 2008-08-14 18:03  goldany  阅读(318)  评论(0)    收藏  举报