设计:
1.整个系统 -> 2.划分子系统 -> 3.子系统中的类 -> 4.分解为子程序 -> 5.子程序内部设计
设计构造块:启发式方法
使用对象进行设计的步骤:
1.辨识对象及其属性(方法(method)和数据(data)0
2.确定对各个对象进行的操作
3.确定各个对象能对其他对象进行的操作
4.确定对象的可见性 - 公有 私有
5.定义每个对象的公共接口
反复的迭代执行
一致的抽象, 封装实现细节, 当继承能简化设计时就继承
信息隐藏:
两种秘密-1.隐藏复杂度 2.隐藏变化源
找出容易改变的区域:
1.找出看起来容易变化的项目 2.把容易变化的项目分离出来(划分为一个类,或者和其他容易同时发生变化的组件划分到同一个类中)
3.把看起来容易变化的项目隔离开来(类之间的接口应对潜在的变化不敏感,设计接口时,把变化限制在类的内部而不影响类的外部)