没有合适的资源?快使用搜索试试~ 我知道了~
面向对象设计原则和设计模式的概念
需积分: 10 4 下载量 59 浏览量
2009-10-09
00:28:35
上传
评论
收藏 460KB PDF 举报
温馨提示
试读
25页
面向对象设计原则和设计模式的概念,讲述面向对象的设计模式
资源详情
资源评论
资源推荐
西安交大软件学院微软亚洲研究院资助
目标
• 了解软件复用的重要性
• 了解面向对象实现软件复用的几大设计原则
• 了解什么是设计模式
西安交大软件学院微软亚洲研究院资助
内容
• 软件的可维护性与可复用性
•“开---闭”原则(OCP)
• 里氏代换原则(LSP)
• 依赖倒转原则(DIP)
• 接口隔离原则(ISP)
• 合成/聚合复用原则(CARP)
• 迪米特法则(LoD)
• 设计模式的概念及历史
西安交大软件学院微软亚洲研究院资助
软件的可维护性与可复用性
• 软件系统的可维护性
• 软件系统的可复用性
西安交大软件学院微软亚洲研究院资助
软件系统的可维护性
• 软件维护的费用=软件开发的费用×2
• 软件的维护=软件的再生
• 导致软件可维护性低的原因:
– 过于僵硬(Rigidity)
– 过于脆弱(Fragility)
– 复用率低(Immobility)
– 黏度过高(Viscosity)
西安交大软件学院微软亚洲研究院资助
软件系统的设计目标
• 可扩展性(Extensibility)
– 新的性能可以很容易地加入到系统中
– 是“过于僵硬”的反面
• 灵活性(Flexibility)
– 可以允许代码修改平稳地发生,而不会涉及到很多其他的模块
– 是“过于脆弱”的反面
• 可插入性(Pluggability)
– 可以很容易的将一个类抽出去,同时将另一个有同样接口的类加
入进来
– 是“黏度过高”的反面
西安交大软件学院微软亚洲研究院资助
系统的可复用性
• 复用(Reuse)
– 重复使用
• 软件复用的好处
– 较高的生产效率
• 重复使用的软件成分可以为将来的使用节省费用
– 较高的软件质量
• 可复用的软件成分总是比不能复用的软件成分有更多的质量保
证
– 恰当使用复用可以改善系统的可维护性
西安交大软件学院微软亚洲研究院资助
传统的复用
• 代码的剪贴复用
• 算法的复用
– 如经典的排序算法等
• 数据结构的复用
– 如队、栈等
西安交大软件学院微软亚洲研究院资助
面向对象设计的复用
• 数据的抽象化和继承关系
– 使得概念和定义可以复用
• 多态性
– 使得实现和应用可以复用
• 抽象化和封装
– 可以保持和促进系统的可维护性
• 面向对象设计的复用重点的转移
– 不再集中在函数和算法等具体实现细节上
– 而是集中在最重要的含有宏观商业逻辑的抽象层次上
西安交大软件学院微软亚洲研究院资助
面向对象设计复用对可维护性的支持
• 恰当的提高系统的可复用性,可以提高系统的可扩展性
– 允许一个具有同样接口的新的类代替旧的类,是对抽现接口的复
用
– 开闭原则、里氏代换原则、依赖倒转原则、组合复用原则
• 恰当的提高系统的可复用性,可以提高系统的灵活性
– 系统中的每一个模块都尽可能的保持独立,这样在修改一个模块
的时候就不会向其他模块传递修改的压力
– 开闭原则、迪米特法则、接口隔离原则
• 恰当的提高系统的可复用性,可以提高系统的可插入性
– 将复用定格在商业逻辑层,也就是在抽象层进行复用,这样就可
以与具体的实现类没有关系了
– 开闭原则、里氏代换原则、组合复用原则
西安交大软件学院微软亚洲研究院资助
开-闭原则
• 定义:
– 一个软件实体应当对扩展开放,对修改关闭
– Software entities should be open for extension,but
closed for modification.
• 实现该原则的关键技术:
– 抽象化
• 从抽象层导出一个或多个新的具体类可以改变系统的行为,因
此系统的设计对扩展是开放的
• 抽象层预见了所有的可能扩展,因此,在任何扩展情况下都不
会改变,这就是对改变的关闭
剩余24页未读,继续阅读
kala0015
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0