我目前正在创建基于OOP原则的东西,我试图应用依赖注入。我知道我可能在这里做错了什么,整个DI事情似乎更令人困惑,可能它是,但我仍然努力让自己的头脑得到解决。依赖注入 - 传递对象
我创建了一个Form类,它将输出各种表单元素,但表单类将至少需要两个其他类(创建为对象)才能正常工作。
下面是我知道了:
$config = new Config();
$db = new Database();
$html = new HTML();
$form = new Form($config, $db, $html);
这只是我玩弄这样形式可能并不需要所有这些事情,但我用它们来说明这一点。
现在,当我创建表单时,我不想将三个对象传递给它以使用它。我可以用静态方法解决这个问题,但这不是我想要走下去的路。
那么,能够使用Form类中前面创建的三个对象的最佳方法是什么?
我想我在一定程度上想要一个几乎全球性的行为。
我发现了一些关于这个和工厂,IoC容器等的东西,但没有解释清楚和容易,所以任何帮助这将是伟大的。或者甚至是一个易于理解的教程的链接,或者是我自己找不到的东西。
我还发现疙瘩 - 可能像这样的东西沿着正确的线?
所以我会只是创建一个通用工厂类,以及与所有其他类交易?有没有在任何地方容易理解的例子?谢谢! – 0Neji 2013-05-03 13:46:12
如果您有像Form这样的其他类的工厂,并且如果这些不同的工厂都收到了相同的依赖关系,那么您可以只使用一个工厂,并使用createForm方法等几种方法。 – Adder 2013-05-03 14:10:16
有道理,那么我只是传递工厂对象? – 0Neji 2013-05-03 14:55:16