知识卡片

建造者模式常与模板方法模式组合使用

普通读书笔记卡 · 1855.a.5

内容

[[建造者模式的定义与四个角色]]里的Product产品类往往是[[模板方法模式的两类方法]]的 实现:模板方法按sequence给定顺序调度基本方法,子类只实现基本方法本身。两个模式各司其 职:模板方法解决”单个产品内部如何组织调用”,建造者解决”调用顺序该如何被灵活配置”。 发散:真实场景里多个模式常叠加使用,不要孤立套用单一模式。

参考来源

- 位置:《设计模式之禅(第2版)》第11章《建造者模式》(源文件:_epub-src/text/part0050.html、part0051.html) - 结论依据:原文说明CarModel的run()方法读取sequence并按顺序调度基本方法,这正是模板方法模式的结构,并明确"建造者模式中还有一个角色没有说明,就是零件……怎么才能更好地达到这种效果呢?引入模板方法模式是一个非常简单而有效的办法",随后提醒"在使用建造者模式的时候考虑一下模板方法模式,别孤立地思考一个模式"。 - 原始内容:建造者模式中还有一个角色没有说明,就是零件,建造者怎么去建造一个对象?是零件的组装,组装顺序不同对象效能也不同……引入模板方法模式是一个非常简单而有效的办法……在使用建造者模式的时候考虑一下模板方法模式,别孤立地思考一个模式,僵化地套用一个模式会让你受害无穷!