接口的用处

自我感觉是这样的:因为接口规定继承接口的类,要实现接口里面的方法,那样一来,凡是继承了这个接口的类都会有相同的方法。

这个当需求中有:

通过 EmailSenderByQq 类和EmailSenderBy163类,我们提炼一个 interface 接口,让User类的register方法依赖interface接口的对象看起来更合适。

以构造函数“注入”实例为例,代码我们整理如下

interface EmailSender
{
    public function send();
}

class EmailSenderByQq implements EmailSender
{
    public function send()
    {
    }
}

class EmailSenderBy163 implements EmailSender
{
    public function send()
    {
    }
}

class User
{
    public $emailSenderClass;

    public function __construct(EmailSender $emailSenderObject)
    {
        $this->emailSenderClass = $emailSenderObject;
    }

    public function register()
    {
        // other code
        
        $this->emailSenderClass->send();
    }
}

$user = new User(new EmailSenderBy163);
$user->register();

猜你喜欢

转载自blog.csdn.net/qq_33876293/article/details/82958343