小例子 理解 laravel 中的 控制反转模式

本文介绍了Ioc(控制反转)及依赖注入的概念,并通过PHP示例代码展示了如何使用依赖注入来实现组件间的解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 实例, 即通过依赖注入的方法解决依赖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值