单一职责原则
- SRP(Single Responsibility Principle)
一个类,最好只负责一件事,只有一个引起它变化的原因。
引起类变化的原因不能多于一个。
也就是说每一个类只负责自己的事情,此所谓单一职责。
开闭原则
OCP (Open Closed Principle)
-
软件实体(包括类、模块、功能等)应该对扩展开放,但是对修改关闭
-
通过扩展去应对需求变化,就要求我们必须要面向接口编程,或者说面向抽象编程。所有参数类型、引用传递的对象必须使用抽象(接口或者抽象类)的方式定义,不能使用实现类的方式定义
-
开闭原则提高系统的可维护性和代码的重用性
里氏替换原则
-
LSP (Liskov Substitution principle)
派生类(子类)对象可以在程序中代替其基类(超类)对象 -
子类必须实现父类的抽象方法,但不得重写(覆盖)父类的非抽象(已实现)方法。
-
子类中可以增加自己特有的方法。
-
当子类覆盖或实现父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
-
当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
依赖倒置原则
- DIP (Dependence Inversion Principle)
1、高层模块不应该直接依赖于底层模块的具体实现,而应该依赖于底层的抽象
2、接口和抽象类不应该依赖于实现类,而实现类依赖接口或抽象类。
接口隔离原则
ISP (Interface Segregation Principle)
其一是不应该强行要求客户端依赖于它们不用的接口;其二是类之间的依赖应该建立在最小的接口上面。简单点说,客户端需要什么功能,就提供什么接口,对于客户端不需要的接口不应该强行要求其依赖;类之间的依赖应该建立在最小的接口上面,这里最小的粒度取决于单一职责原则的划分。
迪米特法则
Law of Demeter
一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话
网友评论