#2 依赖注入 Dependency Injection

类对类存在依赖,我们希望的是解耦,即修改一个类的代码不需要去改动其他类的代码,在前面的工厂模式中已经很接近完成这个目标了,无论怎么修改类的代码我们都只需要修改工厂类的代码即可完成适配。

类对类存在依赖,实际上就是在这个类里面我们会需要一个一个类的实例来干一些事情,那么除了在自己的内部产生还有没有别的办法来获得一个对象呢?有的,正如#2的标题所说,注入!

什么叫注入呢?只要不是在类的内部new或者工厂make的实例,而是通过参数或者其他形式获取的实例其实都叫注入。

比如:

1
2
3
4
5
6
7
class House{
protected $memebrs

public function __construct($members){
$this->members = $members;
}
}