设计模式相关

六大设计原则

1.单一职责原则

一个类的职责越少,越容易维护。假如一个类有A、B两个职责,那么A需要改动的时候,就有可能影响到B。

2.里氏替换原则

使用父类的地方可以随意替换成子类,而不会出错。执行起来就是,子类可以扩展父类功能,但不能改变父类原有的功能。

3.依赖倒置原则

高层(调用方)不应该依赖底层(具体方法实现方),二者都应该依赖抽象。细节(实现类)应该依赖抽象(接口或抽象类)。原本高层直接调用底层是最直接的做法,但是当底层发生接口变化,高层也要跟着修改。这一原则执行起来就是,让高层底层都依赖接口类,限制底层的实现必须按找接口类规定的来,这样就可以大大减少高层的变动。

4.接口隔离原则

接口类 要尽量小。否则可能出现实现类需要去实现一些不需要的接口,这种情况就应该拆开另外一个接口类了。

5.迪米特法则

一个对象应该尽量少的了解其他对象。

  1. 尽量少的引用其他对象 。
  2. 只和直接对象交流。直接对象即 定义在成员变量、方法的输入输出参数中的对象,也就是可以很明显发现的对象。而方法体里的对象却隐藏住了。
  3. 减少对对象的了解。即少暴露方法给外部。

6.开放封闭原则

尽量通过扩展来实现功能,而不是修改原有代码。

控制反转 IOC

A对象依赖B对象,原本在A中创建B,再调用。反转后,B对象由外部注入(依赖注入)。这种情况下,B通常是会有一个父类,这样做可以随时替换和B同个父类的子类。而不是在A里面依赖一堆子类。

参考

面试官:你是如何理解Java中依赖倒置和依赖注入以及控制反转的?

原文地址:https://www.cnblogs.com/nickcan/p/15776115.html