Builder模式的理解分析

七 分析总结

效果:

1 隐藏产品的内部表示

  Builder提供创建产品的接口给Director,

  隐藏了产品的内部结构(仅提供接口BuildPart()创建产品)

  隐藏该产品是如何装配的(BuildPart()内部装配是隐藏的)。

2 将构造代码和表示代码分开

  构造代码是在Builder提供的接口中完成的,每个ConcreateBuilder包含了创建和装配一个特定产品的所有代码。

  提供不同的Builder,使用相同的Director导向过程可以得到不同的表示。

  使用的不同Client可以使用相同的Builder,得到不同相同的表示。

在前面RTFReader阅读器的例子中:

  如果提供ASCIIText Converter 则只能得到ASCIIText,提供TexText Converter则可以得到TexText。

  如果使用XMLReader,提供ASCIIText Converter 使用Director得到不同于的ASCIIText的表示。

  所以将构造代码和表示代码分开,可以使代码得到重用。

3 精确的控制导向产品的创建

  将代码的构建过程委托为Director去完成,那么Client可以不用关注产品的构建过程

  何时完成或者完成到什么程度,交给Director去控制产品的创建和装配的过程。并返回所创建的产品,或者通知Client。

原文地址:https://www.cnblogs.com/fenglongyu/p/7410280.html