最近我遇到了多篇文章,暗示使用Traits来覆盖接口的实现。 例子:使用Traits来涵盖接口的实现要求
interface ArticleInterface
{
/**
* @return mixed
*/
public function getTitle();
}
trait ArticleTrait
{
/**
* @return string
*/
public function getTitle()
{
return "article_title";
}
}
abstract class AbstractArticle implements ArticleInterface
{
use ArticleTrait;
}
Some甚至认为实现接口的特点应该是PHP提供的核心。
因此,如果应该遵循这种设计模式,我试图在问题上得到正确的回答。 如果是的话,应该将PHPDoc描述写入界面还是特性(意味着它将被复制)? 使用此设计时应注意的其他细节?
Imo,特征是这种情况的不错选择:提供一些没有“真正”继承的默认实现。简单的方法来减少样板代码。这看起来像Java中的[接口的默认方法](https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html)。我没有看到这种设计的任何缺点。 – Timurib