知识卡片

规格模式的本质是组合模式与策略模式的特化应用

普通读书笔记卡 · 1997.b

内容

[[规格模式用与或非组合规格书并容许父类依赖子类的例外]]不属于GoF 23种模式,是 两个已有模式的特化组合。从整体-部分看:抽象规格是可组合规格书整体,And/Or/Not和 具体业务规格都是局部实现,是组合模式结构;从可替换性看,每个具体规格封装完整判断 逻辑,替换规格对调用方无影响,是策略模式意图。发散:即”组合模式结构+策略模式可替换性” 叠加在条件筛选问题域上。

参考来源

- 位置:《设计模式之禅(第2版)》第38章《新模式》38.1.2节(源文件:_epub-src/text/part0161.html) - 结论依据:原文自问自答"该实现模式就叫做规格模式(Specification Pattern),它不属于23个设计模式,它是其中一个模式的扩展,是哪个模式呢?……现在我们又回到了整体和部分的关系了,那这是什么模式?对,组合模式,它是组合模式的一种特殊应用……我们再仔细看看,还能不能找到其他模式的身影?对,策略模式,每个规格书都是一个策略,它完成了一系列逻辑的封装"。 - 原始内容:该实现模式就叫做规格模式(Specification Pattern),它不属于23个设计模式,它是其中一个模式的扩展……现在我们又回到了整体和部分的关系了,那这是什么模式?对,组合模式,它是组合模式的一种特殊应用……还能不能找到其他模式的身影?对,策略模式,每个规格书都是一个策略,它完成了一系列逻辑的封装,用年龄相等的规格书替换年龄大于指定年龄的规格书上层逻辑有什么改变吗?不需要任何改变!