C#面向对象设计模式第四讲:Builder Pattern生成器模式(创建型模式)

(根据MSDN Webcast相关课程整理)

生成器模式的缘起:

一个类中主结构(将各个成员组合在一起的构建方法)基本稳定,但内部的几个组成部分可能经常存在变化。

GOF:将一个复杂对象的构建与其表示相分开,使得同样的构建过程可以创建不同的表示。

C#面向对象设计模式第四讲:Builder Pattern生成器模式(创建型模式)_第1张图片

构成主类的某引动部分成员PartA和B是常变化的,而创建器的算法方式不变,客户程序通过Director的Construct方法,传入不同的生成器,从而完成不同类型对象的创建。

C#面向对象设计模式第四讲:Builder Pattern生成器模式(创建型模式)_第2张图片

以下示例通过生成器模式可以方便的产生各种风格的房子。只需要实现该风格房子的生成器,并将其作为参数传给CreateHouse方法就可以啦。

其中的具体类是经常需要变化的部分:

C#面向对象设计模式第四讲:Builder Pattern生成器模式(创建型模式)_第3张图片

据生成器产生相应的对象,这部分是不需要经常变动的:

C#面向对象设计模式第四讲:Builder Pattern生成器模式(创建型模式)_第4张图片

客户程序调用方法:

clip_image010

当添加一种新风格的房子时,以上方法还需要在客户程序中修改传入的参数类型,这不是最佳方法,我们其实还可以利用.Net的反射机制动态加载,从而使客户程序不需要依赖类库层的对象。

C#面向对象设计模式第四讲:Builder Pattern生成器模式(创建型模式)_第5张图片

《完》

你可能感兴趣的:(C#面向对象设计模式第四讲:Builder Pattern生成器模式(创建型模式))