软件设计的关键设计概念

《代码大全》第5章 软件构建中的设计 读书笔记

管理软件的复杂度

设计层次

1. 软件系统

2. 子系统或包

常用子系统划分形式:

  • 业务规则:法规、政策、规定等
  • 用户界面
  • 数据库访问
  • 系统依赖性:对操作系统和硬件的依赖因素
  • 软件功能实现

3. 类

4. 子程序

5. 子程序内部设计

信息隐藏

  • 隐藏复杂度:大部分时候不用去应付复杂度
  • 隐藏变化源:发生变化时,影响被限制在局部

保持松散耦合

按耦合的紧密程度排列

  • 简单数据参数耦合:传递简单数据类型作为参数
  • 简单对象耦合:一个模块实例化一个对象(?)
  • 对象参数耦合:传递对象作为参数
  • 语义耦合:一个模块使用了另一个模块内部工作细节的语义知识

常用设计模式

  • 提供现成的抽象来减少复杂度
  • 把常见解决方案的细节进行制度化来减少出错
  • 通过提供多种设计方案而带来启发性价值
  • 把设计对话提升到更高层次来简化交流

自上而下和自下而上的设计方法

  • 自上而下:从高度抽象,向下逐渐分解
  • 自下而上:实现最基本的职能后向上扩展

你可能感兴趣的:(软件设计的关键设计概念)