一.单一职责原则:
1.概念:一个类只负责一项职责。一个类应该是一组强相关的函数、数据的封装,两个完全不一样的功能实现不应该出现在同一个类中。
二.开闭原则:
1.概念:对扩展开放,对修改关闭。当功能需要变化时,应该尽量通过扩展的方式来实现变化,而不是通过修改已有的代码来实现。
三.里氏替换原则:
1.概念:子类可以扩展父类的功能,但不能改变父类原有的方法。任何基类可以出现的地方,子类一定可以出现,即子类可以替换基类,并且软件的功能不受到影响。
2.继承的优缺点:
优点:
(1)提高代码的重用性,子类拥有父类的方法和属性;
(2)提高代码的可扩展性,子类可形似于父类,但异于父类,保留自我的特性;
缺点:
(1)继承是侵入性的,只要继承就必须拥有父类的所有方法和属性,在一定程度上约束了子类,降低了代码的灵活性;
(2)增加了耦合,当父类的常量、变量或者方法被修改了,需要考虑子类的修改。
3.利用里氏替换原则解决继承的缺点:
(1)子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象(已实现)方法。
(2)子类中可以增加自己特有的方法。
(3)当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
(4)当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
四.依赖倒置原则:
1.概念:程序要依赖于抽象接口,不要依赖于具体实现。简单地说就是面向抽象接口进行编程,不是面向具体实现进行编程,从而降低程序间的耦合性。
五.接口隔离原则:
1.概念:设计接口功能尽量细粒度,最小功能单元。即使用多个专门的接口,而不使用单一的总接口。
六.迪米特原则:
1.概念:降低类之间的耦合度。即一个对象应该对其他对象保持最少的了解,尽量降低类与类之间的耦合度,也称为最少知识原则。