Traits in PHP and right cases to use it
本问题已经有最佳答案,请猛点这里访问。
在学习PHP时,我阅读了一些我熟悉的类和接口。
以及我不熟悉的特质。它被描述为类似抽象类的独立模块,但使用了不同的继承方法:特性可以从另一个特性继承,并包含在一个类中。
我以前没有在其他常见的OO语言中看到过这个特性,所以问题是:
- 在PHP面向对象设计中,哪些角色特征起作用?
有时,两个没有共同点(因而不共享祖先)的类仍然可以从代码重用中受益。
特性允许您将类中的公共功能提取到特性中,并在其他类中重用它。它们不承担继承的语义权重。
例如,如果您可以在
如果这样的组合是一个好的或坏的面向对象设计实践,是一个热门的争论问题。
而且,它在Ruby中以模块的形式被广泛使用。