知识卡片
钩子式创建
内容
工厂方法常作为模板流程中的一个钩子,默认实现可以返回通用产品,子类按需要覆盖。发散:创建对象本身也是行为变化点,把它做成可覆盖步骤能减少条件分支。
参考来源
- 位置:第3章《创建型模式》3.3节「Factory Method(工厂方法)」8.效果「为子类提供钩子」(源文件:_epub-src/OEBPS/Text/part0065.xhtml)
- 结论依据:原文明确说明工厂方法给子类一个钩子以提供对象的扩展版本,Document类可以定义一个工厂方法提供合理的缺省实现,子类可以重定义它以定义特定实现,直接支持卡片对工厂方法常作为模板流程中的一个钩子、默认实现可返回通用产品、子类按需覆盖的论述。
- 原始内容:"为子类提供钩子(hook)。用工厂方法在一个类的内部创建对象通常比直接创建对象更灵活。Factory Method给子类一个钩子以提供对象的扩展版本……在这种情况下,工厂方法就不再抽象了,而是提供了一个合理的缺省实现。"