软件工程与软件自动化 (17).pdf
《软件工程与软件自动化 (17).pdf》由会员分享,可在线阅读,更多相关《软件工程与软件自动化 (17).pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、GRASPGRASP 什么是什么是GRASP?General Responsibility Assignment Software Patterns(通用职责分配软件模式)GRASP包括4个基本模式和5个扩展模式,描述了对象设计和职责分配的基本原则 职责是一个类的契约或义务“做”型职责是通过类的方法来实现的“知道”型职责是通过类内部封装的属性以及类间关系来体现 GRASP是如何设计一个面向对象系统的基础 GRASP的的9个模式个模式 专家:应该将职责分配给信息专家(谁的数据谁负责)创建者:创建对象的职责(何时,由谁来创建和销毁)低耦合:类间的关系代表了类之间的耦合程度 高内聚:一个类的职责之间
2、的相关程度和集中程度 控制者:把协调处理系统消息的职责分配给不同控制类 多态:为不同的派生类分配具体的工作,具有相同接口 纯虚构:非实体类,从其他类中抽取相关高内聚职责 中介者:隔离藕合度过大的多个类,可能是虚构的 受保护变化:把易于变化部分封装起来便于扩展 信息专家信息专家 Information Expert 信息专家模式是面向对象设计的最基本原则 如果某个类拥有完成某个职责所需要的所有信息,那么这个职责就应该分配给这个类来实现 示例:网上购物系统的购物车设计 需求:需要让每种商品只在购物车内出现一次,购买相同商品,只需要更新商品的数量即可 方案1:判断相同的职责与商品ID相关,它存在商品
3、类中 方案2:商品类为实体类,商品ID相关职责太多,应分散 创建者创建者 尽可能少的建立对象之间的耦合和依赖关系 一般情况下,只在下列情况下才由类来创建类,即是的创建者:1.是的聚合 2.是的容器 3.持有初始化的信息(数据)4.记录的实例 5.频繁使用 低耦合低耦合 低耦合降低了因一个类的变化而影响其他类的范围,而且让类更简单,更容易理解 造成类A、B之间耦合的情况:1.A是B的属性 2.A调用B的实例的方法 3.A的方法中引用了B,包括B是A方法的返回值或参数 4.A是B的子类,或者A实现了B 遵循一些面向对象设计的基本原则可以降低类间耦合,如LoD,信息专家(职责迁移),避免夸模块类之间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程与软件自动化 17 软件工程 软件 自动化 17
限制150内