依赖注入和工厂模式的区别。


工厂模式和依赖注入都是设计模式,可用于增强软件组件之间的松耦合能力。

工厂设计模式用于创建对象。但是,对象的注入和生命周期管理应该由程序员在应用程序中处理。无法在一个地方配置所有内容。因此,程序员需要在任何需要的地方调用对象创建逻辑,这最终会阻碍松耦合能力。

在 DI 设计模式中,对象的创建、实例的注入和实例的生命周期管理可以在代码外部处理。在 Spring 中,实例化、注入和生命周期管理由 IOC 容器处理。

序号关键工厂设计模式DI 设计模式
1
对象创建
它用于创建对象。我们有单独的工厂类包含创建逻辑。
它负责对象的创建和注入。
2
对象的状态
它负责创建有状态对象。
它负责创建无状态对象
3
运行时/编译时
在编译时创建对象
在运行时配置对象
4
代码更改
如果业务需求发生变化,则可能需要更改对象创建逻辑。
不需要代码更改
5
机制
类依赖于工厂方法,而工厂方法又依赖于具体类
父对象和所有依赖对象都可以在一个位置创建

工厂模式示例

static class PizzaFactory{
   public Pizza buildPizza(String pizzaType){
      ........

      Pizza pizza= //create pizza based on type
      return pizza;
   }
}
static void Main(){
   Pizza pizza = PizzaFactory.buildPizza("Greek style");
}

依赖注入示例

public class CustomerExample {
   public Address address
   public CustomerExample(Address address) {
      this.address = address;
   }
}
public class Address {
   ..............
}

更新时间:2020年9月9日

2K+ 浏览量

开启你的职业生涯

通过完成课程获得认证

开始学习
广告