GRASP对象设计示例:IntellAgile实战与操作流程
需积分: 9 16 浏览量
更新于2024-08-01
收藏 736KB PPT 举报
GRASP(Growing Object-Oriented Software Applications)是一种面向对象的设计原则集合,由C.A. Begg提出,用于指导软件系统的设计和开发。本示例展示了如何在实际应用中使用GRASP原则来构建一个简单的对象设计模型。首先,我们关注于"IntellAgile"这个主题,主讲人姜春艳分享了来自craiglarman.com的版权内容,强调了GRASP在设计中的核心作用。
在这个例子中,主要涉及以下几个关键知识点:
1. **GRASP原则**:包括5个核心原则,如Replace Abstract Classes with Concretions(替换抽象类)、Refactor to Increase Cohesion (高内聚性)、Generalize and Specialize (概括与具体化)、Prefer Composition over Inheritance (组合优于继承)和Program to an Interface, not an Implementation (编程到接口,而非实现)。这些原则旨在确保设计的灵活性、可扩展性和可维护性。
2. **对象设计示例**:以一个"Sales"系统为例,包括两个主要类:`Sale`和`LineItem`。`Sale`类可能包含`date`属性,表示销售日期,而`LineItem`类则代表订单中的商品,具有`quantity`属性和关联的产品描述。这体现了Replace Abstract Classes with Concretions原则,通过具体的类来替代抽象概念。
3. **Use Case Model**:展示了系统的用例模型,如`Register`用例,其中包含了`enterItem`操作。这个操作接收`itemID`和`quantity`作为参数,从`ProductCatalog`获取产品描述,并添加到`Sale`中。这体现了Generalize and Specialize原则,将业务逻辑分解到各个具体操作中。
4. **DesignModel**:包括系统序列图,如`ProcessSale`,展示了交互流程,如顾客到达、现金出纳员输入商品标识等。这是对业务流程的可视化,有助于理解各个角色和操作之间的关系。
5. **Requirements and Business Modeling**:需求驱动设计,通过分析功能需求和业务模型,为对象设计提供灵感。这包括识别出与软件对象相关的功能性需求,以及设计的详细后置条件。
6. **Object-Oriented Design Elements**:如命名规范(如`Cashier`、`Cashier`类名来源于现实场景),反映了命名的直观性和启发性,有助于代码理解和维护。
7. **Supplementary Specification** 和 `Glossary`:补充规格说明和术语定义,确保设计文档的完整性和一致性。
通过这个示例,我们可以看到GRASP原则如何应用于实际的软件设计中,帮助开发者创建出清晰、灵活和易于维护的系统结构。设计时,不仅要考虑对象的职责和关系,还要确保遵循GRASP的原则,以提高设计质量。
2018-06-07 上传
2009-06-06 上传
2011-05-31 上传
2021-02-04 上传
2022-05-07 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
daoyingkuku
- 粉丝: 1
- 资源: 2
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构