3:单一原则(SRP)
就一个类而言,应该仅有一个引起它变化的原因。
软件设计师发现职责并且把那些职责相互分离
如果能够想得到多以一个动机去改变一个类,那么这个类就具有大于一的职责,就应该考虑分离
4:开放封闭原则(OCP)
软件实体(类,模块,函数等)应该可以扩展,但是不可以修改
应当在书写之前做好抽象方面的思考
5:依赖倒转原则(ASD)
抽象不应该依赖细节,细节应该依赖抽象
即:不要面对实现编程,而是面对接口编程
*里氏代换原则:子类型必须能够替换掉他们的父类型。(即在软件里,把父类都替换成他的子类,程序没有变化)
常见错误,父类:鸟,属性会飞。企鹅虽然在生物界定义为鸟,但是不能飞,所以在此地不能够继承鸟为其子类。