面向对象设计原则
设计目的单一的类, 职责单一! 不是功能单一, 也就是某个类负责一方面的任务人不是单单一个功能, 否则就违反了"高内聚".
开放-封闭原则
对扩展开放, 对修改封闭. 不修改不会不会出问题? 对于经过测试的代码如果没哟屋恩替是不提倡修改的, 修改过后要进行回归测试.
里氏(Liskov)替换原则
子类可以代替父类, 父类可以接收子类. 通常在子类中不提倡重写父类的方法, 因为在把子类当做父类(子类泛化)是可能不了解子类的方法构造从而造成意想不到的错误.
依赖倒置原则
要依赖抽象, 而不是具体实现; 依赖接口编程, 而不是针对实现编程.
接口隔离原则
使用多个专门的接口比单一的总接口好.
组合重用原则
要尽量使用组合, 而不是继承关系达到重用. 子类继承父类也是依赖于父类, 依赖就是继承父类的方法和属性.
迪米特(Demeter)原则
一个对象应该尽可能少的了解(依赖)其他对象. 依赖就会增加耦合, 耦合增加了模块的独立性就变差了!