1.寻找现实世界的对象。
2.形成一致的抽象
3.封装实现细节
4.在可能的情况下继承
5.信息隐藏
6.找出容易改变的区域
7.保持松散耦合
8.探寻通用的设计模式
9.高内聚
10.构造分层结构
11.严格描述类契约
12.分配职责
13.为测试而设计
14.避免失误
15.有意识地选择绑定时间
16.创建中央控制点
17.考虑使用蛮力
18.画一个图
19.保持设计模块化
2.形成一致的抽象
3.封装实现细节
4.在可能的情况下继承
5.信息隐藏
6.找出容易改变的区域
7.保持松散耦合
8.探寻通用的设计模式
9.高内聚
10.构造分层结构
11.严格描述类契约
12.分配职责
13.为测试而设计
14.避免失误
15.有意识地选择绑定时间
16.创建中央控制点
17.考虑使用蛮力
18.画一个图
19.保持设计模块化