本来抽象工厂模式还有已知应用和相关模式两个模块,但是它们对于理解设计模式没有什么意义,本系列连载会直接省略。
名称
还是先看名称。这个设计模式的英文为BUILDER,中文翻译成了“生成器”,作者认为这个翻译不太好,如果翻译成【构建者】,或者【建造者】没准会更好。【生成器】的说法无法给人构建对象很大,很复杂的感觉。例如大楼,轮船等。还是英文的BUILDER最好。
意图
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
这句话中的几个关键词需要特别注意一下。
因为对象【复杂】所以构建需要一个过程。这一点实际上也可以说是应用BUILDER模式的必要条件;【表示】一词可能有些令人费解,英文原文是【representation】,作者认为更准确的翻译应该是【表现】。一个飞机设计图决定生产飞机的步骤,按照这个步骤我们可以制作一个模型,也可以造一架真正的飞机。这里的模型和飞机,就是设计图的两种表现。结合起来,意图这句话可以这样理解:
将一个复杂对象的构建和表现分离,使得同样的构建过程可以创建不同的表现。
作者观点
在面向对象设计和开发过程中名称的重要性无论怎么强调都不过分。一旦名称定了,职责,行为也差不多就定了。
觉得本文有帮助?请分享给更多人。
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】