Php 如果两个对象相互引用,这是否表示代码错误?
鉴于此代码:Php 如果两个对象相互引用,这是否表示代码错误?,php,Php,鉴于此代码: class EmailHander { public $mailer; public function __construct() { $mailer = new PHPMailer(); } public function getEmail ($name) { return new EmailTemplate ($name, $this); } } class EmailTemplate
class EmailHander
{
public $mailer;
public function __construct()
{
$mailer = new PHPMailer();
}
public function getEmail ($name)
{
return new EmailTemplate ($name, $this);
}
}
class EmailTemplate
{
public $body, $subject, $handler;
public __construct ($name, EmailHander $handler)
{
require ($name.'.html');
$this->handler = $handler;
}
public function send ($target)
{
$this->handler->mailer->send ($target, ......);
}
}
有一个处理邮件者的EmailHandler
,还有许多代表电子邮件的EmailTemplates
。所以
$handler = new EmailHandler();
$email = $hander->getEmail ('subScribe');
$email->send('x@y.com');
但这可能很糟糕。
EmailHandler
生成一个EmailTemplate
。但是EmailTemplate
指的是EmailHandler
,所以这是一个循环的东西,是好是坏?这段代码中没有循环依赖关系。电子邮件与处理程序之间存在单向依赖关系;不管处理程序是否设置了依赖项。你是在问它是好是坏?你的问题的结论是“不是很好?”不需要说两遍我认为这个限制的目的是鼓励你写一个完整的英语句子,而不是写两次单字注释。我在你的代码中看到的唯一问题是你经常拼错handler
,漏掉l