对依赖注入的一些理解

前端之家收集整理的这篇文章主要介绍了对依赖注入的一些理解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天在公司没事,顺手翻了下同事一本strtus2的书。这种前端MVC框架简直渣的不行,怪不得SSH是外包公司专用呢。Java开发者很奇怪的一个想法就是总想用JAVA语言和xml标签解决一切事情,却反而把很多事情变得更加复杂、繁琐、无法通用和定制。至少struts2的前后端耦合实在严重,非要用java解决本该在浏览器客户端解决的事情,关键是还做不好。

不过JAVA框架的设计模式还是很值的学习,今天略微看了一下依赖注入dependency injection.

如果有两个组件A和B,且A依赖于B(B是A的一个依赖)。在A中使用B就需要取得B的一个实例。

public class A {
     public void depOnB() {
         B b = new B();
         b.xxxxx();
     }
}
A依赖于B,就需要在A中初始化B的一个实例。但是B很可能是有多种实现,一般情况下可以用一个工厂类来产生,但是需要写比较复杂繁琐的代码。这个时候就可以在A中创造一个B的构造器。就可以从A的外部获得B的类型,然后在A中使用B的实例。


如:

public class PersistenceManager {
    public void store(Object object) {
        DataSource datasource = ...//obtain datasource
        try {
             Connection con = datasource.getConnection();
            //....
        } catch (sqlException e) {

        }
    }
}
这个例子中需要实例datasouce,我们可以提供一个接受依赖关系的构造器
<pre name="code" class="java">public class PersistenceManager {
    private DataSource datasource;
    public PersistenceManager(DataSource datasource) {
         this.datasource = datasource;
    }
    public void store(Object object) {
     
        try {
             Connection con = datasource.getConnection();
            //....
        } catch (sqlException e) {

        }
    }
}

猜你在找的设计模式相关文章