GRASP基于职责设计对象
GRASP:基于职责设计对象
目标 学习使用面向对象设计的5个 GRASP原则或模 式
目标 ◼ 学习使用面向对象设计的5个GRASP原则或模 式
UML与设计原则 最关键的软件开发工具是受过良好设计原则训 练的思维(而不是UML或其他任何技术)。 ■学习 GRAPS和基本GoF设计模式是本书的关 键目标
UML与设计原则 ◼ 最关键的软件开发工具是受过良好设计原则训 练的思维(而不是UML或其他任何技术)。 ◼ 学习GRAPS和基本GoF设计模式是本书的关 键目标
职责和职责驱动设计 考虑系统中各个对象的职责、角色和协作,以 此来驱动设计的过程,称为职责驱动的设计 职责: 类元( Classifier)的职责或义务。 职责的类型: 口行为dong) 口认知( knowing)
职责和职责驱动设计 ◼ 考虑系统中各个对象的职责、角色和协作,以 此来驱动设计的过程,称为职责驱动的设计。 ◼ 职责: 类元(Classifier)的职责或义务。 ◼ 职责的类型: ❑ 行为(doing) ❑ 认知(knowing)
职责和职责驱动设计 行为职责: 口自身执行的一些行为,如创建对象或计算 口初始化其他的对象 口控制和协调其他对象中的活动 认知职责 口对私有封装数据的认知 口对相关对象的认知 口对其能够导出或计算的事物的认知
职责和职责驱动设计 ◼ 行为职责: ❑ 自身执行的一些行为,如创建对象或计算 ❑ 初始化其他的对象 ❑ 控制和协调其他对象中的活动 ◼ 认知职责 ❑ 对私有封装数据的认知 ❑ 对相关对象的认知 ❑ 对其能够导出或计算的事物的认知
GRASP General Responsibility Assignment Software Patterns 使用职责进行OO设计的基本原则 帮助你理解基本对象设计,以一种系统的,合 理的,可以解释的方式来推导设计
GRASP ◼ General Responsibility Assignment Software Patterns ◼ 使用职责进行OO设计的基本原则 ◼ 帮助你理解基本对象设计,以一种系统的,合 理的,可以解释的方式来推导设计
职责、 GRASP和UM图之间的关系 ■交互图与分配职责密切 相关:绘制交互图的过 程就是职责分配的过程。 Sale makePayment(cash Tendered) createlcashTendered abstract, implies Sale objects have a responsibility to create Payments
职责、GRASP和UML图之间的关系 ◼ 交互图与分配职责密切 相关:绘制交互图的过 程就是职责分配的过程。 : Sale makePayment(cashTendered) : Payment create(cashTendered) abstract, implies Sale objects have a responsibility to create Payments
什么是模式( attern 在面向对象的设计中,模式是对问题和解决方案的已 命名描述 ■模式的关键元素: 口名称 a问题 a解决方案 对于特定的问题,可以应用许多原则(模式)为对象 分配职责 模式陈述的不是新的设计思想,而是将已有的,经过 验证的知识、惯用法和原则汇编起来
什么是模式(pattern) ◼ 在面向对象的设计中,模式是对问题和解决方案的已 命名描述。 ◼ 模式的关键元素: ❑ 名称 ❑ 问题 ❑ 解决方案 ◼ 对于特定的问题,可以应用许多原则(模式)为对象 分配职责 ◼ 模式陈述的不是新的设计思想,而是将已有的,经过 验证的知识、惯用法和原则汇编起来
用到的领域模型 Records-sale-of Described-by Product Product Specificatio description itemID Used-by Describ Sales Lineltem Store Item Stocks quantity address ame Contained Houses completed Register Started-b Manager date Captured-on Initiated-by 4 Records-sales-on Payment Customet Cashier amount
用到的领域模型
低耦合 问题: ¤怎样降低依赖性,减少变化带来的影响,提高复用 性。 解决方案: 口使得耦合尽可能低的方式分配职责
低耦合 ◼ 问题: ❑ 怎样降低依赖性,减少变化带来的影响,提高复用 性。 ◼ 解决方案: ❑ 使得耦合尽可能低的方式分配职责