依赖注入

What

代理模式的一种应用:在A对象中需要创建另一个类B的实例;

Why

实现依赖项注入可为您带来以下优势:

  • 重用代码
  • 易于重构
  • 易于测试

How

  • 接口注入
//根据预先在配置文件中设定的实现类的类名,动态加载实现类,并通过InterfaceB 强制转型后为ClassA所用
public class ClassA {
private InterfaceB clzB;
public init() {
    Ojbect obj =
    Class.forName(Config.BImplementation).newInstance();
    clzB = (InterfaceB)obj;
}
……
}
  • 构造器注入
class Car {

    private final Engine engine;

    public Car(Engine engine) {
        this.engine = engine;
    }

    public void start() {
        engine.start();
    }
}

  • 设置注入(Setter方法注入)
//可通过修改传入Engine的实例( 比如Engine的子类等)实现不同的注入,而不用修改Car类。
class Car {

    private Engine engine;

    public void setEngine(Engine engine) {
        this.engine = engine;
    }

    public void start() {
        engine.start();
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容