我正在阅读PHP中的设计模式,我一直看到以下语法,例如
$newClass = new myClass(new myOtherClass());
我想这会在myOtherClass
内传递某种myClass
引用,所以这里
class myClass{
private $myOtherClass;
public function __construct(myOtherClass $myOtherClass) {
$this->myOtherClass= $myOtherClass;
}
public function myClassMethod($var) {
$this->myOtherClass->methodOfMyOtherClass($var);
}
}
构造指的是myOtherClass
和
我可以使用methodOfMyOtherClass
myOtherClass
中的myClass
myClassMethod
,$newClass->myClassMethod('a value here');
我的问题是:
这种做法的名称是什么?
我的概念是否正确?
我在哪里可以阅读更多相关信息?
(我第一次看到这个语法是here,这也是我根据这个问题编写代码的地方)
答案 0 :(得分:1)
这种做法的名称是什么?
通常这称为Dependency Injection
。 myClass
需要myOtherClass
才能正确执行其方法,因此myOtherClass
是myClass
的依赖关系。阅读更多here。
我的概念是否合适?
看起来你的概念是正确的。至少根据您的样本,您正确使用它。
我在哪里可以阅读更多相关信息? 如果您想了解更多关于依赖注入的信息,我建议this。一般来说,12 Factor App教授的原则非常好,值得一读。 12 Factor App
一些值得阅读的好书如下:
Clean Code
Patterns for Enterprise Architecture