Just a note
一个复杂对象的创建包括两个部分:每个部分的创建和按照一定的算法将它们组合起来。如果对象需要扩展,组成对象的每个部分(内部表示)可能不一样,但将它们组合起来的算法(生产过程)可能是相同的。将生产过程分离出来,封装在Direcotr类中;内部表示封装在Builder类中。这样一个复杂对象的创建就分成了不变的生产过程(Director)和可扩展的内部表示(Builder)两部分。如下示例中,Builder基类里的BuildPart方法不是纯虚函数,是因为有些时候子类并不一定要创建某个part,所以这里父类提供缺省实现。
Powered by: C++博客 Copyright © 大胖