依赖注入:工厂与容器方法解析
1. 工厂方法概述
按需实例化依赖是一种分散式方法,扩展性不佳。随着依赖图变得更大、更复杂,会产生大量重复的依赖实例化逻辑。而工厂方法则是将依赖实例化集中化。
这种方法适用于临时依赖,即可以与正在构建的对象同时实例化的依赖,但它无法处理像单例这样的长期依赖。
1.1 工厂类
工厂类由一系列工厂方法组成。部分方法用于创建依赖,部分用于创建正在构建的对象。而且,工厂类没有状态,即该类不应有任何存储属性。
创建工厂类的一个目标是让消费者无需了解如何构建实例化对象所需的依赖图,就能创建对象。这使得代码的任何部分都能轻松获取所需对象,无论该对象被拆分成多少小对象。
1.2 依赖工厂方法
依赖工厂方法的职责是知道如何创建新的依赖实例。
- 创建和获取传递依赖 :由于依赖本身可能有自己的依赖,这些工厂方法在实例化依赖之前需要获取传递依赖。传递依赖可能是临时的或长期的。
- 对于临时传递依赖,依赖工厂方法可以直接调用工厂类中的另一个依赖工厂方法。
- 对于长期传递依赖,依赖工厂方法应包含一个传递依赖的参数,以便在运行时提供这些依赖。
- 解决协议依赖 :依赖工厂方法通常具有协议返回类型,以实现可替换性。此时,依赖工厂方法封装了协议和具体类型之间的映射。例如,有一个
UserProfileDataStore协议作为依赖,工厂类封装了使用
超级会员免费看
订阅专栏 解锁全文
1524

被折叠的 条评论
为什么被折叠?



