2008年8月14日

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

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

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

 

适用情况:

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

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

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

 

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

 

模式结构:

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

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

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

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

 

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

 

代码模板:回头上。呵呵

 

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

 

posted @ 2008-08-14 18:03 goldany 阅读(79) 评论(0) 编辑

行为型模式编程

行为模式是对在不同对象之间划分算法和职责的抽象化。

 

行为模式分类:

1.类的行为模式:使用继承机制在类间分配行为。

2.对象的行为模式:使用对象合成而不是来分配行为。

 

理解关键点:

1.行为模式不仅描述对象或类本身,还描述他们之间的交互。

2.这些模式涉及到在运行期不易掌握的复杂的控制流,从流程控制到对象互动是此类模式的特点。

3.封装变化是很多行为模式的主题。当一个程序的某个方面的特性经常发生改变时,就可能将这些变化的行为特征风装成一个对象,并通过某些行为模式规范客户端所依赖的这些对象间的协作。这些模式通常定义一个抽象类来描述这些封装变化的对象。

4.发送者和接收者的解耦。当合作的对象直接互相引用时,他们变得互相依赖,这将会对系统的分层以及重用性产生影响。行为模式将之解耦。(不同的行为模式有不同的权衡考虑。)

 

到此模式的三个大类的描述与讲解到此结束,在这里起到抛砖引玉的作用,后面如果有时间将单个模式一片讲解的方式进行

。呵呵。

 

以上的文字可能随着我对模式的理解的深入将会有所改动。

 

 

 

posted @ 2008-08-14 17:23 goldany 阅读(35) 评论(0) 编辑

结构型模式编程

结构型模式考虑的是类及对象如何组合成更大的结构

结构模式的分类:

1.类的结构模式:使用继承机制来组合接口或实现。

2.对象的结构模式:描述如何通过组合对象产生新功能的方法,是动态的,因为他可以在运行期随时改变对象的组合能力,这是类结构无法达到的。

 

      尽管各个模式的目的截然不同,但却具有互补性。如果能结合使用则能获得意想不到的效果。

posted @ 2008-08-14 09:41 goldany 阅读(40) 评论(0) 编辑