知识卡片
中介者模式很少用抽象类因为同事间缺乏共性
内容
[[中介者模式的定义与自发行为/依赖方法的区分]]很少用抽象类约束同事类:同事类是协作关系 而非血缘关系,完成不同业务,硬定义”必须具有的方法”很牵强,提炼不出共性就不该刻意追求 抽象。具体中介者通常也只有一个实现,很难抽象出有共性的父类。发散:”能不能提炼出共性” 应先于”要不要面向接口编程”,勉强抽象反而制造虚假耦合点。
参考来源
- 位置:《设计模式之禅(第2版)》第14章《中介者模式》(源文件:_epub-src/text/part0066.html)
- 结论依据:原文解释"既然是同事类而不是兄弟类……那就说明这些类之间是协作关系……不可能抽象出一个父类统一定义同事所必须有的方法……如果两个对象不能提炼出共性,那就不要刻意去追求两者的抽象",并说明"一个中介者抽象类一般只有一个实现者……对于中介者来说,抽象已经没有太多的必要"。
- 原始内容:如果两个对象不能提炼出共性,那就不要刻意去追求两者的抽象,抽象只要定义出模式需要的角色即可……你能抽象出一个具有共性的中介者吗?不可能……所以,对于中介者来说,抽象已经没有太多的必要。