H5W3
当前位置:H5W3 > php > 正文

【php】php依赖注入怎么理解

最近看php代码 里面用到了依赖注入,但是自己一直没有理解依赖注入的好处,都说依赖注入可以降低耦合,如果一个方法需要修改逻辑,我想说的是就算我用new的方式也可以实现只改被调用类代码就可以了啊?调用方的代码依然不用变。代码量也不会减少,所以到底依赖注入好在哪里呢?求举个开发的例子。
我只理解到原来new 类 现在作为参数传入了。

回答

比如你要开发一个信息通知功能,有的场景需要短信通知,有的场景需要邮件通知。你有一个信息通知调用类Notifier,邮件通知处理EmailNotifierHandler,短信通知处理类SMSNotifierHandler。你在所有需要发送信息通知的地方使用Notifier处理,根据注入的不同的处理类实现不同的发送方式。

class Notifier{
    protected $handler;
    function __construct(NotifierHandlerInterface $handler){
        $this->handler = $handler;
    }
    
    public function sendmsg($msg){
        $this->handler->send($msg);
    }
}
//通知处理类接口
interface NotifierHandlerInterface{
    public function send($msg);
}
//邮件处理类
class EmailNotifierHandler implements NotifierHandlerInterface{
    public function send($msg){
    }
}
//短信处理类
class SMSNotifierHandler  implements NotifierHandlerInterface{
    public function send($msg){
    }
}

想象一些,如果有二三十种通知处理类,如果只是用switch去写就会很麻烦,但是使用这种注入操作类对象的方法就很方便。修改的时候也只需要修改注入的类对象就可以了。

本文地址:H5W3 » 【php】php依赖注入怎么理解

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址