《代码大全》第5章 软件构建中的设计 读书笔记
管理软件的复杂度
设计层次
1. 软件系统
2. 子系统或包
常用子系统划分形式:
- 业务规则:法规、政策、规定等
- 用户界面
- 数据库访问
- 系统依赖性:对操作系统和硬件的依赖因素
- 软件功能实现
3. 类
4. 子程序
5. 子程序内部设计
信息隐藏
- 隐藏复杂度:大部分时候不用去应付复杂度
- 隐藏变化源:发生变化时,影响被限制在局部
保持松散耦合
按耦合的紧密程度排列
- 简单数据参数耦合:传递简单数据类型作为参数
- 简单对象耦合:一个模块实例化一个对象(?)
- 对象参数耦合:传递对象作为参数
- 语义耦合:一个模块使用了另一个模块内部工作细节的语义知识
常用设计模式
- 提供现成的抽象来减少复杂度
- 把常见解决方案的细节进行制度化来减少出错
- 通过提供多种设计方案而带来启发性价值
- 把设计对话提升到更高层次来简化交流
自上而下和自下而上的设计方法
- 自上而下:从高度抽象,向下逐渐分解
- 自下而上:实现最基本的职能后向上扩展