本文共 2070 字,大约阅读时间需要 6 分钟。
依赖倒置原则(Dependency Inversion Principle, DIP)提出的核心思想是:高层模块不应直接依赖底层模块,而是通过抽象(接口或抽象类)间接建立依赖关系。具体定义如下:
一、降低耦合度:通过抽象层隔离具体实现,减少模块间的紧密联系,避免因模块改动而导致的广泛影响。
二、提升系统稳定性:系统各部分相对独立,便于扩展与维护。三、便于并发开发:高层模块与低层模块分离,减少沟通冲突。一个典型的Java场景:司机驾驶不同品牌车辆。
初始实现:直接耦合
引入依赖倒置原则:通过接口实现解耦
public interface ICar { void run(); }
public interface IDriver { void drive(ICar car); }
public class Driver implements IDriver { public void drive(ICar car) { car.run(); }
public class Benz implements ICar { public void run() { System.out.println("奔驰开始..."); }}public class BMW implements ICar { public void run() { System.out.println("宝马开始..."); }}
#### 依赖注入的三种方式
在Java中,依赖注入是实现依赖倒置的核心技术,主要方法有:** constructor injection(构造函数注入)**:通过无参数构造函数接收依赖对象。
** setter injection(Setter注入)**:通过Setter方法注入依赖对象。
** interface injection(接口注入)**:在接口中定义依赖关系,实现类只需实现接口即可。
// definitionspublic interface ICar { void run(); }public interface IDriver { void drive(ICar car); }// implementationspublic class Benz implements ICar { public void run() { System.out.println("奔驰开始..."); }}public class BMW implements ICar { public void run() { System.out.println("宝马开始..."); }}public class Driver implements IDriver { public void drive(ICar car) { car.run(); }}
通过依赖倒置原则和依赖注入技术,可以显著提升系统设计的可维护性与扩展性。在实际开发中,这三种注入方式可以根据具体场景灵活选择,以实现最佳性与可读性。
转载地址:http://usptz.baihongyu.com/