低耦合(cont) ■什么是耦合 ¤耦合是某元素和其他元素之间的连接、感知和依赖 程度的度量。 ■低耦合意味着对其他元素的依赖程度低 高耦合导致的问题: 口局部的变化影响整体 难以被单独理解 难以重用
低耦合(cont) ◼ 什么是耦合 ❑ 耦合是某元素和其他元素之间的连接、感知和依赖 程度的度量。 ◼ 低耦合意味着对其他元素的依赖程度低。 ◼ 高耦合导致的问题: ❑ 局部的变化影响整体 ❑ 难以被单独理解 ❑ 难以重用
低耦合: :上xamp 假设我们需要创建 Payment的实例,将他关联 到Sae。哪个类应该担当这个职责? Payment Re egister Sale
低耦合: Example ◼ 假设我们需要创建Payment的实例,将他关联 到Sale。哪个类应该担当这个职责? Payment Register Sale
低耦合: Example(cont makePaymento Register 1: create Payment 2:addPayment(p) Sale makePaymento 1: makePaymento Register Sale 1.1: create :Payment
低耦合: Example (cont) :Register makePayment() p:Payment 1:create() :Sale 2:addPayment(p) :Register makePayment() :Sale 1:makePayment() :Payment 1.1:create()
低耦合: Discussion 低耦合是在设计决策期间必须牢记的原则,是 应该不断被考虑的基本目标。 通常会与其他模式一起考虑,如“信息专家” 或“高内聚
低耦合: Discussion ◼ 低耦合是在设计决策期间必须牢记的原则,是 应该不断被考虑的基本目标。 ◼ 通常会与其他模式一起考虑,如“信息专家” 或“高内聚
低耦合: Discussion(con ■没有绝对的度量标准来衡量耦合程度的高低 低耦合的极端例子是没有耦合:对象间没有或极少通 信 a不可取,因为这个例子违反了对象技术的基本原则:系统由 相互连接的对象组成,对象之间通过消息通信 耦合度过低产生不良设计,其中会使用一些缺乏内聚性、膨 胀、复杂的对象来完成所有工作 ¤对象间适度的耦合对于一个优良的面向对象系统是非常重要 的
低耦合: Discussion (cont) ◼ 没有绝对的度量标准来衡量耦合程度的高低 ◼ 低耦合的极端例子是没有耦合:对象间没有或极少通 信。 ❑ 不可取,因为这个例子违反了对象技术的基本原则:系统由 相互连接的对象组成,对象之间通过消息通信。 ❑ 耦合度过低产生不良设计,其中会使用一些缺乏内聚性、膨 胀、复杂的对象来完成所有工作。 ❑ 对象间适度的耦合对于一个优良的面向对象系统是非常重要 的