知识卡片

属性拆成四步

普通读书笔记卡 · 1715.b

内容

通用容器把属性行为拆成初始化摘要、更新摘要、合并摘要和报告结果四个操作。发散:抽象可复用算法时,先找出不变流程,再把变化点压缩成小接口。

参考来源

- 位置:《你真的会写代码吗-2021》第9章《请重复利用:可复用性》"9.2.1 属性API"(源文件:_epub-src/OEBPS/Text/0019.xhtml) - 结论依据:原文定义`Attribute`接口的四个方法:`seed`(提供初始的摘要)、`update`(用一个值更新一个摘要)、`merge`(合并两个摘要)、`report`(解包一个摘要),并说明它抽象了本地更新与组摘要之间的关系。 - 原始内容:新的通用容器需要初始化它的组摘要(seed方法)。通用容器的get方法需要一个方法来将它的摘要解包为类型为V的本地值(report方法)。通用容器的update方法需要更新它的摘要(update方法)。connectTo方法需要一个合并两个组值的方法(merge方法)……S seed(); void update(S summary, V value); S merge(S summary1, S summary2); V report(S summary);