Java 六大设计原则

六大设计原则分别为:

  1. 依赖倒置原则-Dependency Inversion Principle (DIP)
  2. 里氏替换原则-Liskov Substitution Principle (LSP)
  3. 接口分隔原则-Interface Segregation Principle (ISP)
  4. 单一职责原则-Single Responsibility Principle (SRP)
  5. 开闭原则-The Open-Closed Principle (OCP)

1、依赖倒置原则

  1. 高层模块不依赖底层模块,二者都要依赖其抽象
  2. 抽象不应该依赖细节,细节也应该依赖抽象

说白了就是面向接口编程。因为相对于细节来说,抽象的东西要稳定很多

以抽象搭建起来的架构比细节搭建起来的架构要稳定的多

举个例子来说,一个团队,有需求组,开发组,测试组。而开发组和测试组面对同样的需求,做自己响应的工作。而不是测试组按照开发组的理解需求去做测试用例。也就是说开发组和测试组是直接面向需求组工作的。

2、里氏替换原则

这个主要是一个软件实体如果使用一个父类的话,那么一定适用于父类的子类。而且它觉察不出父类对象和子类对象的区别。也就是说,在软件里面,把父类替换成它的子类。程序的行为是没有变化。

通俗的来说:子类是可以扩展父类的功能,但是不能改变父类原有的功能。

它包含了四层含义:

  1. 1、子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法

2、子类可以增加自己特有的方法

3、当子类的方法重载父类的方法时,它的形参要比父类的输入参数更加宽松

4、当子类的方法实现父类的抽象方法是,它的返回值要比父类更加严格