知识卡片
用桥墩数量快速判断策略模式还是桥梁模式
内容
[[策略模式与桥梁模式类图相同但意图不同]]提供更好记的判断法:桥梁模式必然有两个 “桥墩”——抽象化和实现化角色都存在且都可独立扩展;策略模式只有一个抽象角色,实现可以 是零个、一个或多个,不要求两条独立继承体系配合。发散:作者认为两者确实难泾渭分明, 设计时不必纠结模式名字,”不管黑猫白猫,抓住老鼠的就是好猫”,重要的是结构合理。
参考来源
- 位置:《设计模式之禅(第2版)》第33章《跨战区PK》33.1.3节(源文件:_epub-src/text/part0147.html)
- 结论依据:原文总结"桥梁模式必然有两个'桥墩'——抽象化角色和实现化角色,只要桥墩搭建好,桥就有了,而策略模式只有一个抽象角色,可以没有实现,也可以有很多实现",并给出"不管黑猫白猫,抓住老鼠的就是好猫"的实用态度。
- 原始内容:桥梁模式必然有两个"桥墩"——抽象化角色和实现化角色,只要桥墩搭建好,桥就有了,而策略模式只有一个抽象角色,可以没有实现,也可以有很多实现……我们在做系统设计时,可以不考虑到底使用的是策略模式还是桥梁模式,只要好用,能够解决问题就成,"不管黑猫白猫,抓住老鼠的就是好猫"。