(根据MSDN Webcast相关课程整理)
生成器模式的缘起:
一个类中主结构(将各个成员组合在一起的构建方法)基本稳定,但内部的几个组成部分可能经常存在变化。
GOF:将一个复杂对象的构建与其表示相分开,使得同样的构建过程可以创建不同的表示。
构成主类的某引动部分成员PartA和B是常变化的,而创建器的算法方式不变,客户程序通过Director的Construct方法,传入不同的生成器,从而完成不同类型对象的创建。
以下示例通过生成器模式可以方便的产生各种风格的房子。只需要实现该风格房子的生成器,并将其作为参数传给CreateHouse方法就可以啦。
其中的具体类是经常需要变化的部分:
据生成器产生相应的对象,这部分是不需要经常变动的:
客户程序调用方法:
当添加一种新风格的房子时,以上方法还需要在客户程序中修改传入的参数类型,这不是最佳方法,我们其实还可以利用.Net的反射机制动态加载,从而使客户程序不需要依赖类库层的对象。
《完》
※※※※※※※※※※※※※※--我的程序人生--※※※※※※※※※※※※※※