5、依赖注入:工厂与容器方法解析

依赖注入:工厂与容器方法解析

1. 工厂方法概述

按需实例化依赖是一种分散式方法,扩展性不佳。随着依赖图变得更大、更复杂,会产生大量重复的依赖实例化逻辑。而工厂方法则是将依赖实例化集中化。

这种方法适用于临时依赖,即可以与正在构建的对象同时实例化的依赖,但它无法处理像单例这样的长期依赖。

1.1 工厂类

工厂类由一系列工厂方法组成。部分方法用于创建依赖,部分用于创建正在构建的对象。而且,工厂类没有状态,即该类不应有任何存储属性。

创建工厂类的一个目标是让消费者无需了解如何构建实例化对象所需的依赖图,就能创建对象。这使得代码的任何部分都能轻松获取所需对象,无论该对象被拆分成多少小对象。

1.2 依赖工厂方法

依赖工厂方法的职责是知道如何创建新的依赖实例。

  • 创建和获取传递依赖 :由于依赖本身可能有自己的依赖,这些工厂方法在实例化依赖之前需要获取传递依赖。传递依赖可能是临时的或长期的。
    • 对于临时传递依赖,依赖工厂方法可以直接调用工厂类中的另一个依赖工厂方法。
    • 对于长期传递依赖,依赖工厂方法应包含一个传递依赖的参数,以便在运行时提供这些依赖。
  • 解决协议依赖 :依赖工厂方法通常具有协议返回类型,以实现可替换性。此时,依赖工厂方法封装了协议和具体类型之间的映射。例如,有一个 UserProfileDataStore 协议作为依赖,工厂类封装了使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值