首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOC设计模式是否独立于工厂设计模式?

IOC设计模式是否独立于工厂设计模式?
EN

Stack Overflow用户
提问于 2012-09-10 23:30:08
回答 2查看 1K关注 0票数 4

我在某处读到,IOC与工厂模式不同。因为工厂设计模式更具侵入性,而As依赖注入则不是。

有没有人能详细说明一下?

EN

回答 2

Stack Overflow用户

发布于 2012-09-11 00:23:36

是的,IoC和工厂是两个不同的东西。IoC实际上是一个更通用的术语,许多东西都可以称为IoC,因此它有助于进一步细化您所指的内容。例如,从技术上讲,任何回调或事件都被认为是IoC的实现。然而,当大多数人谈到IoC时,他们指的是依赖注入。

您可以使用工厂来实现控制反转,就像您可以使用依赖注入来实现一样。

您可能正在考虑的是依赖注入容器,如Unity、Windows或Ninject。DI容器是一种美化的抽象泛型工厂,但它做的远不止这些,包括对象生存期管理、条件绑定等。

将模式(IoC或DI)与实现(工厂、DI容器、穷人DI等)分开是很重要的。即使实现本身也可能是模式。

票数 3
EN

Stack Overflow用户

发布于 2012-09-11 13:09:10

控制容器的反转主要不用于依赖注入。它是为了让容器控制对象的生命周期。因此才有了inversion of control

这就是为什么当你在容器中注册东西时,你总是指定一个生命周期(或者仅仅使用默认的生命周期)

但是,由于容器为您创建了对象,因此它还可以提供依赖项注入作为额外的功能。所以这真的是一个额外的好处。

另一方面,工厂模式应该总是创建一个新的对象。工厂模式的目的很简单,就是为您创建正确的实现。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12354845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档