知识卡片

遍历分析分离

普通读书笔记卡 · 1919.f

内容

拼写检查需要遍历文档结构,断字处理又需要另一套动作。迭代器封装遍历过程,访问者封装对元素的分析动作,让结构和操作各自演进。发散:复杂结构上新增操作时,先检查遍历与动作是否耦合。

参考来源

- 位置:第2章《实例研究:设计一个文档编辑器》2.8.2节「封装访问和遍历」及2.8.6节「封装分析」(源文件:_epub-src/OEBPS/Text/part0054.xhtml~part0058.xhtml) - 结论依据:原文说明应封装那些变化的概念——访问和遍历机制(引入迭代器),并把拼写检查等分析责任独立封装成对象、通过与迭代器结合完成遍历中的分析工作,直接支持卡片对拼写检查需要遍历文档结构、迭代器封装遍历过程、访问者封装对元素的分析动作的论述。 - 原始内容:"一个好的解决方案是封装那些变化的概念,在本例中我们指的是访问和遍历机制。我们引入一类称为迭代器(iterator)的对象……所有迹象表明,我们需要在一个独立对象中封装分析方法……这个Iterator负责将该实例携带到所遍历结构的每一个图元中。"