GRASPE设计带职责的对象 徐迎晓 xuyingxiao(@126.com 复旦大学软件学院
GRASP:设计带职责的对象 徐迎晓 xuyingxiao@126.com 复旦大学软件学院
设计带职责的对象 交互设计和职责分配的质量决定系统的 质量 ●可维护性 可理解性 可重用性 ●可扩展性 ●好的面向对象设计原则可用于交互图设 计和职责分配 GRASP模式
设计带职责的对象 交互设计和职责分配的质量决定系统的 质量 ⚫ 可维护性 ⚫ 可理解性 ⚫ 可重用性 ⚫ 可扩展性 好的面向对象设计原则可用于交互图设 计和职责分配—GRASP模式
GRASP:通用职责分配软件模式 o General Responsibility Assignment Software Patterns ●将职责分配给对象的基本原则
GRASP:通用职责分配软件模式 ⚫ General Responsibility Assignment Software Patterns 将职责分配给对象的基本原则
GRASP设计带职责的对象 ●五个 GRASP模式 应用 GRASP实现 Process sale用例 可见性设计 类图设计
GRASP:设计带职责的对象 五个GRASP模式 应用GRASP实现Process Sale用例 可见性设计 类图设计
五个 GRASP模式 LoW Coupling High cohesion ●. Controller Creator Information Expert
五个GRASP模式 . Low Coupling . High Cohesion . Controller . Creator . Information Expert
模式: Low Coupling ● Problem:如何降低依赖、减少改变的影 响,增加重用性? d Solution:分配职责时使耦合低
模式: Low Coupling Problem:如何降低依赖、减少改变的影 响,增加重用性? Solution:分配职责时使耦合低
原理: 耦合表明两个类之间连接的强度,一个类是 否依靠其他类 ●A具有低耦合,则A不依赖很多其他的类 ●高耦合带来的问题 ●其他类改变则可能自己也必须改变 单独(无其他类时)难以理解 ●由于需要很多其他类,难以重用
原理: ⚫ 耦合表明两个类之间连接的强度,一个类是 否依靠其他类 ⚫ A具有低耦合,则A不依赖很多其他的类 高耦合带来的问题 ⚫ 其他类改变则可能自己也必须改变 ⚫ 单独(无其他类时)难以理解 ⚫ 由于需要很多其他类,难以重用
明同③8工具 简明汉英词典 耦 高级汉语词典 形声。从耒禺或声。耒山d)翻土工具。本义二人并肩耕地) 同本义[ (plough side by side 耦耒厂五寸为伐,二伐为耦 十千维耦 《诗颂噫嘻》 醬如农夫作耦。 禹见耕者耦立而式。一—《荀子·大略》 语微子》 如耦耕两人并力一起耕和 代犁田的一种方式耦犁(—种耕作法)。引申为二人一组。如耦俱无淸双方部无淸疑)耦居喟两人同处耦俱〔相处融 匹敌相对[ match。如耦国对等之国;耦象指箭耙)耦语(相对私语) 遇蓬[ meet with 燕成双鸾对影耦新知。一—宋孙光宪《酒泉子》 5)合符合[ coordinate]。如耦世应世俗) 词性变化 ou 配偶[ spouse]l如:自择良耦;正为嘉耦 偶像[ image;idol如木耦土耦。耦人(木等制成的人俑) 同“偶”。双数成对[even 阳卦奇阴卦耦 《易系辞下》 又如耦语两个相对私语。同偶语)耦俱无淸两者均无疑恨〕耦立对偶)耦丽耦俪¢耦的文辞) 躯体[body] 南郭子綦隐机而坐仰天而嘘嗒焉似丧其耦。一一《庄子》 oude 〈量 词模式:鼠标取词
举例 We have a need to create a Payment instance and associate /it with the sale Payment Register Sale ●谁来创建 Payment实例
举例 we have a need to create a Payment instance and associate it with the Sale. 谁来创建Payment 实例?
makePaymento 1: create( Rea p:Pavment