小例子 理解 Laravel 中的 控制反转模式
Ioc (Inversion of Control) 控制反转模式 又称 (Depe-ndency Injection)依赖注入模式
控制反转是将组件的依赖关系从程序内部提到程序外部来管理,而依赖注入是指组件的依赖通过外部以参数或其它形式注入
下面我将以一个简单的例子来演示什么是 Ioc 控制反转
<?php
interface Visit
{
public function go();
}
class Leg implements Visit //行走接口
{
public function go()
{
// TODO: Implement go() method.
echo "walt to Tibet!!!";
}
}
class Car implements Visit //汽车接口
{
public function go()
{
// TODO: Implement go() method.
echo "drive car to Tibet!!!";
}
}
class Train implements Visit //火车接口
{
public function go()
{
// TODO: Implement go() method.
echo "go to Tibet by train";
}
}
class Traveller // 旅行者类
{
protected $trafficTool;
public function __construct(Visit $trafficTool)
{
$this->trafficTool = $trafficTool;
}
public function visitTibet()
{
$this->trafficTool->go();
}
}
$tra = new Traveller(new Car());
$tra->visitTibet();
Traveller
类的构造函数依赖了一个外部的具有visit接口的实例,而实例化Traveller
时,我们传递了一个 $trafficTool
实例, 即通过依赖注入的方法解决依赖
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: