自我感觉是这样的:因为接口规定继承接口的类,要实现接口里面的方法,那样一来,凡是继承了这个接口的类都会有相同的方法。
这个当需求中有:
通过 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();