软件的首要技术使命:管理复杂度
本质的问题和偶然的问题,导致软件开发变得困难
在软件架构的层次上,可以通过把整个系统分解为多个子系统来降低问题的复杂度
解决复杂度:
把任何人在同一时间需要处理的本质复杂度的量减少到最低
不要让偶然性的复杂度无谓的快速增长
理想的设计特征
- 最小的复杂度
- 易于维护
- 松散耦合
- 可扩展性
- 可重用行
- 高扇入。让大量的类使用某个给定的类。意味着设计出得系统很好的利用了在较低层次上的工具类
- 低扇出。让一个类较少量或者适中的使用其他的类。不超过7个。
- 可移植性
- 精简性
- 层次性
- 标准技术