关于oop:PHP中的特征和使用它的正确案例

Traits in PHP and right cases to use it

本问题已经有最佳答案,请猛点这里访问。

在学习PHP时,我阅读了一些我熟悉的类和接口。

以及我不熟悉的特质。它被描述为类似抽象类的独立模块,但使用了不同的继承方法:特性可以从另一个特性继承,并包含在一个类中。

我以前没有在其他常见的OO语言中看到过这个特性,所以问题是:

  • 在PHP面向对象设计中,哪些角色特征起作用?

有时,两个没有共同点(因而不共享祖先)的类仍然可以从代码重用中受益。

特性允许您将类中的公共功能提取到特性中,并在其他类中重用它。它们不承担继承的语义权重。

例如,如果您可以在UserArticle上发表评论,这两个特性都可以使用Commentable特性。

如果这样的组合是一个好的或坏的面向对象设计实践,是一个热门的争论问题。

而且,它在Ruby中以模块的形式被广泛使用。