php依赖注入怎么理解

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

阅读 1.9k
1 个回答

比如你要开发一个信息通知功能,有的场景需要短信通知,有的场景需要邮件通知。你有一个信息通知调用类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去写就会很麻烦,但是使用这种注入操作类对象的方法就很方便。修改的时候也只需要修改注入的类对象就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题