首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >依赖注入-传递对象

依赖注入-传递对象
EN

Stack Overflow用户
提问于 2013-05-03 20:08:57
回答 1查看 138关注 0票数 1

我目前正在创建一些基于OOP原则的东西,并且我正在尝试应用依赖注入。我意识到我可能在这里做错了什么,整个依赖注入的事情似乎更令人困惑,但我仍然在努力解决这个问题。

我已经创建了一个将输出各种表单元素的Form类,但是这个form类至少还需要另外两个类(创建为对象)才能正常工作。

下面是我是如何得到它的:

代码语言:javascript
复制
$config = new Config();
$db = new Database();
$html = new HTML();

$form = new Form($config, $db, $html);

这只是我的游戏,所以Form可能不需要所有这些东西,但我使用它们来说明这一点。

现在,当我创建一个表单时,我不希望必须将三个对象传递给它才能使用它。我可以用静态方法等来解决这个问题,但我真的不想走这条路。

那么,使用前面在Form类中创建的三个对象的最佳方式是什么呢?

我想我在某种程度上想要一种几乎是全球性的行为。

我发现了一些关于这方面的东西,工厂,IoC容器等等,但没有任何东西能清楚和容易地解释它,所以任何对这方面的帮助都会很好。或者甚至链接到一个容易理解的教程或其他东西,因为我自己也找不到。

我还发现了Pimple -这样的东西可以沿着正确的路线吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-03 20:31:01

好吧,如果你不传入这三个对象,你就不是在做依赖注入。

为了避免再次出现这些参数,您可以编写一个包装类,也可以编写一个包含创建和返回form对象的方法的工厂类。您可以使用$config, $db, $html初始化工厂类一次,然后将其用于创建的每个表单。

因此,该过程将如下所示:

代码语言:javascript
复制
$factory= new Factory($config, $db, $html);
$form= $factory->createForm();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16358611

复制
相关文章

相似问题

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