// 非依赖注入
class A
{
public $obj;
public function __construct ()
{
$this -> obj = new Object ();
}
}
// 依赖注入
class A
{
public $obj;
public function __construct ( $obj )
{
$this -> obj = $obj;
}
}
至于第二段代码中的$obj从哪里来, 自己来决定.
而依赖注入的分类, 那就简单了.
构造注入, 就是把对象在构造函数中传进来.
setter注入, 就是实例化对象后, 通过setXXX方法把对象传进来.
接口注入, 就是加上类型限定, 如下
public function getAll( DI $di )
{
}