软件需求变更法则:
真是世界中使用的程序必须进行变更,否则它在环境中的作用会越来越小。 by lenhman & belady
单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。职责定义为“变化的原因(a reason for change)”, 如果你能够想到多于一个的动机去改变一个类,那么这个类就是多于一个职责。
优秀设计的原则
(1)发现变化/封装变化
(2)抽象稳定接口,针对接口
(3)分离变化维度,单一职责原则
(4)尽量动态绑定,组合/聚合复用原则
*尽量使用合成和聚合,而不是以继承达到复用的目的
*该原则就是在一个新的对象里面使用已有的对象,使之成为新对象的一部分;新的对象通过向这些对象委派达到复用的目的。
*继承是多态的基础,多态是继承的目的
*N乘M PK N+M
(5)创建和使用分离
*对象要么构造对象,要么使用对象,而不应该兼而有之,遵守这一约束,加强内聚,降低耦合。
软件开发者的能力模型