深入探索 Scala 设计模式:委托、惰性参数与部分应用函数
1. 委托模式
委托模式是对面向对象语言中以类型继承作为基本复用方法的回应。虽然继承在很多场景下很有用,但有时将某些行为的实现责任委托给其他类型会更好。
1.1 继承的问题
继承并非没有缺点,若使用不当会引发诸多问题:
- 降低代码的可理解性。
- 增加维护难度。
- 使进一步开发变得困难。
- 降低代码的可靠性。
- 减少整体复用性。
例如,继承会导致“Yo - Yo 问题”。当系统遇到发送给“this”(当前对象)的消息时,必须从当前类开始搜索,这可能使开发者在类层次结构中上下跳跃,难以追踪系统的执行路径。
再如 Swing 中的 Undo 框架, UndoManager 的 canUndo() 和 canRedo() 方法存在微妙依赖。子类调用父类的 undo() 和 redo() 方法的要求并不明显,这增加了代码维护和开发的难度。
从上述讨论可以得出以下结论:
- 继承非常有用,如 Java 中的 Frame 、 Panel 等类。
- 复用承诺提高生产力、可维护性和可靠性。
- 不恰当的继承复用会对生产力、维护和可靠性产生不利影响。
- 继承不是唯一的复用形式。
1.2 组合复用
组合复用是将独立组件组合成更
超级会员免费看
订阅专栏 解锁全文
5

被折叠的 条评论
为什么被折叠?



