软件设计和软件实现
- 软件设计是一个创造性的活动,在此活动中需要基于客户需求识别软件构件及其关系。
- 软件实现是将设计实现为一个程序的过程
为开发一个系统设计,你需要
- 理解并定义上下文模型以及系统的外部交互
- 设计系统体系结构
- 识别系统中的主要对象
- 开发设计模型
- 刻画接口
设计模式
设计模式是从Christopher Alexander(Alexander 1979)所提出思想中派生出来的,他认为建筑设计中存在一定的共性模式,这些模式令人喜欢并且有效。
- 结构/静态模型,使用静态类及其关系描述系统的静态结构。这个阶段需要描述的重要的关系类型包括泛化(继承)关系、使用/被使用关系、组合关系。
- 动态模型,描述了系统的动态结构并展示了所期望的系统对象之间的运行时交互。可以描述的交互包括对象发出的服务请求的序列以及由这些对象交互所触发的状态变化。
模式在复用中的角色
模式和模式语言是描述最佳实践、好的设计的方式,其中捕捉了相关的经验,从而使其他人复用这些经验成为可能。
模式是一种复用其他设计者的知识和经验的方式。
适配器模式
- Client:接口的使用者
- ClientInterface:用户期望的接口
- Adaptee:原有的类,需要被适配的类
- Adaptor:把原有类转换成用户希望的类,也就是ClientInterface的实现。
这种设计模式叫做Adaptor,合理的用到了继承与组合
Adaptor模式的好处?
将系统原有的接口转换成目前客户所希望的接口,使得客户和原有系统无需改变可以一起工作。
Adaptor可以用在什么地方
系统复杂度增长,开发时间的压缩,以及成本考虑,开发者有很强的动机复用原有代码或者购买商业构件。但是如何将………融入新系统是一个很大问题。
用Adaptor模式封装遗留构件
复用(牢记)
- 抽象级
- 对象级
- 构件级
- 系统级