面向对象设计原则:GRASP简介与应用
需积分: 9 55 浏览量
更新于2024-09-13
收藏 145KB PPT 举报
"设计模式讲义1"
设计模式是软件开发中的一种最佳实践,它们代表了在特定上下文中解决常见问题的经过验证的解决方案。GRASP(General Responsibility Assignment Software Patterns)是面向对象设计的一个基本原则集,它指导我们如何在类和对象之间合理地分配职责。在设计系统时,遵循GRASP原则可以提高代码的可读性、可维护性和可扩展性。
首先,我们要理解GRASP中的核心概念——责任。责任是指一个类或对象应该承担的任务,分为知道责任和行为责任。知道责任涉及到对象对其私有数据的理解、与其他对象的关联以及对派生或计算信息的了解。而行为责任则是指对象执行的操作或活动。
信息专家是GRASP中的一个重要原则,它建议将责任分配给拥有完成该责任所需全部信息的类。例如,在购物车系统中,判断两个商品是否相同的责任应由商品类来承担,因为商品类包含了定义其独特性的所有信息,如商品ID、名称等。购物车只需要知道如何处理商品的添加和数量调整,而不必负责判断商品的唯一性。
创造者原则指出,如果一个类A需要频繁地创建另一个类B的实例,那么A应该是B的创造者。这样做的好处是保持低耦合,即减少类之间的相互依赖。例如,购物车类可能需要创建商品实例,因为它负责管理这些商品,同时初始化和记录商品信息。但是,过度的耦合会导致系统难以维护,因此我们追求低耦合的设计,以降低类之间的相互影响。
低耦合是设计模式和GRASP中的一个重要目标。当类A依赖于类B的实例、调用B的方法或返回B类型的值时,两者之间就会形成耦合。为了减少这种依赖,我们可以使用抽象、接口或者依赖注入等设计策略。例如,购物车类可以使用商品接口而不是具体的商品类,这样即使商品类的实现改变,购物车类的代码也不需要修改,保持了灵活性。
除了信息专家和创造者,GRASP还包括其他原则,如控制器、多态、间接性、高内聚、低耦合、保护变化等。这些原则帮助我们更好地理解类和对象之间的关系,指导我们在设计时做出明智的决策,以创建更加健壮和可维护的软件系统。
GRASP提供了一套指导原则,帮助开发者在设计时考虑如何合理分配职责,以实现高内聚、低耦合的目标。通过深入理解和应用这些原则,我们可以构建出更加优雅、灵活和可扩展的软件架构。在实际编程中,结合设计模式如工厂模式、单例模式、装饰器模式等,可以更有效地实践GRASP原则,提高代码质量。
134 浏览量
191 浏览量
2017-03-22 上传
realgzq
- 粉丝: 0
- 资源: 6
最新资源
- swgoh-tw
- pictips:Instagram克隆与生活小贴士
- Bookers2-ver4.0
- 闪烁文本按钮、发光呼吸字体
- HTML和CSS
- CSCE4110:算法
- 超简单图示:建议的 FBMC 调制器的图示-matlab开发
- 基于51单片机智能电子锁多功能菜单栏
- MPMB-v13-content-catchup
- 海威视康扫码读取软件源码C++BuilderSocket通讯.zip
- FinalShell(远程连接工具) V3.0.10 官方版.rar
- portfolio
- (MFC)手机通讯录 (源码和文档)
- mimic_mf_analysis:Python应用程序可运行MIMIC表型的相互信息分析
- sgauss(t,Tfwhm,E,C,m):啁啾超高斯脉冲-matlab开发
- GuitarTabs:绘制吉他谱的工具