客户需求分析,实际上就是分析需求是否可以实现、需要修改哪些地方。理想情况下,我们的产品应该是对已有部分不做任何修改,而只是对新的需求做一些扩展,这就要求我们在设计时遵循开闭原则。事实上,需求分析贯穿于整个编码活动中,因为当代码之间相互协作时,一部分代码就是另一部分的客户。
开闭原则分为两部分,对修改关闭,对扩展开放。在OO语言下,
对修改关闭,一般可以应用继承,使各需求共享相同实现。在设计继承结构时,应该满足两个OO设计原则:
A. 里氏替换原则——继承必须确保超类所拥有的性质在子类中仍然成立。这个原则保证我们类之间继承关系的健康性
B. 依赖倒置原则——要依赖于抽象,不要依赖于具体。这个原则保证我们的设计有更大是适用性,可以最大可能地满足对修改关闭。
对扩展开放,一般可以应用多态或者组合。无论你是覆写已有方法还是委托给已有类,为了保证修改尽可能小,在设计时应该满足两个OO设计原则:
A. 单一职责原则——一个类,只有一个引起它变化的原因
B. 接口分离原则——接口的设计应该遵循最小接口原则
用图形表示就是