Aha!设计模式(18)-BUILDER(9)

网友投稿 821 2022-10-12

Aha!设计模式(18)-BUILDER(9)

Aha!设计模式(18)-BUILDER(9)

实现

2) 为什么产品没有抽象类

通常情况下,由具体生成器生成的产品,它们的表示相差是如此之大以至于给不同的产品以公共父类没有太大意思。在 RTF例子中,ASCIITe xt和TextWidget对象不太可能有公共接口,它们也不需要这样的接口。因为客户通常用合适的具体生成器来配置导向者,客户处于的位置使它知道Builder的哪一个具体子类被使用和能相应的处理它的产品。

上面的区别是学习设计模式中最重要的部分,也就是说设计模式是在一个什么样的上下文中使用,用以解决什么问题的。关于这一点作者称之为场景。

3 ) 在Builder中却省的方法为空

《设计模式》书中的译文出现了别字,应该是缺省的方法。是说Builder基类应该为每个操作定义一个没有任何实现的空函数。这个说法不够严密。这个空函数应该可以保证产品的构建过程能够正常进行,也就是说不能返回导致程序失败的返回值,或者发生内存泄漏等。严格讲应该是缺省实现,而不是空函数。

很遗憾,前面一篇文章中的例子使用了纯虚函数。

特此订正:这一点大师说的对。

作者观点

如果不能理解场景只看类图,那么看到的都是相似的类图。

注:

本文中蓝色粗体文字都引自《设计模式》一书。

觉得本文有帮助?请分享给更多人。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:containerd ctr运行ansible容器执行ansible-playbook任务完整命令
下一篇:首个 Taro 多端统一实例 - 网易严选(小程序 + H5 + React Native)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~