php 依赖注入模式

当A类需要依赖于B类,也就是说需要在A类中实例化B类的对象来使用时候,如果B类中的功能发生改变,也会导致A类中使用B类的地方也要跟着修改,导致A类与B类高耦合。这个时候解决方式是,A类应该去依赖B类的接口,把具体的类的实例化交给外部。

<?php
/**
 * 依赖注入模式
 */

interface Message
{
    public function send();
}


class SendEmail implements Message
{
    public function send()
    {
        // TODO: Implement send() method.
        echo 'send email','<br/>';
    }
}

class SendSMS implements Message
{
    public function send()
    {
        // TODO: Implement send() method.
        echo 'send sms','<br/>';
    }
}

class User
{
    private $server = null;

    public function __construct(Message $message)
    {
        $this->server = $message;
    }

    public function sendMsg()
    {
        return $this->server->send();
    }
}

// 发送邮件
$message = new SendEmail();
$user = new User($message);
$user->sendMsg();

// 发送短信
$message = new SendSMS();
$user = new User($message);
$user->sendMsg();

-

发布了90 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_24935119/article/details/103990143
今日推荐