知识卡片

格式算法封装

普通读书笔记卡 · 1919.a

内容

排版算法会随目标、语言和设备变化,把它封装成独立对象后,文档结构无需知道具体换行策略。[[组合胜过继承]]在这里体现为用协作者替代继承分支。发散:策略对象适合承载可替换规则。

参考来源

- 位置:第2章《实例研究:设计一个文档编辑器》2.3.1节「封装格式化算法」(源文件:_epub-src/OEBPS/Text/part0030.xhtml) - 结论依据:原文明确说明格式化算法应彻底独立于文档结构之外,把算法独立出来封装到对象中使其便于替代,增加一个格式化算法不应要求修改已有的图元类,直接支持卡片对排版算法应封装成独立对象、文档结构无需知道具体换行策略的论述。 - 原始内容:"最好是将它们彻底独立于文档结构之外。理想情况下,我们能够自由地增加一个Glyph子类而不用考虑格式化算法。反过来,增加一个格式化算法不应要求修改已有的图元类……我们可以将算法独立出来,并把它封装到对象中使其便于替代。"