gpt4 book ai didi

php - 特征不只是组合吗?

转载 作者:IT王子 更新时间:2023-10-28 23:53:02 26 4
gpt4 key购买 nike

我正在阅读一篇关于 PHP 5.4.0 新特性的文章。最受期待的之一是 Traits .

阅读这些Traits,了解它们的全部内容,它们对我来说只是简单的编译器辅助复制粘贴;并且一种语言提供了使用组合的方法,这与著名的策略模式中使用的非常相似,它利用了“优先组合优于继承”的设计原则。

我理解正确吗?

这些特征可能提供哪些其他优势,使它们值得而不是仅仅使用组合设计原则?

最佳答案

不,特征不仅仅是组合,因为将特征“粘贴”到类中的规则完全不同。

使用组合时,不会发生冲突或方法被覆盖,因为组合元素是一个完全隔离的单元(其他类的实例),您可以通过它的公共(public) API 从消费实例中与之交互。此外,如果您需要从消费实例提供访问权限,则必须添加代理方法以委托(delegate)给复合元素。

另一方面,特征成为它们所使用的实例的 API 的一部分。它们不是实例中的子系统。它们甚至不是实例,而只是可重用的样板代码。正如我在 Traits in PHP – any real world examples/best practices? 中展示的那样,它提供的一个好处是满足具有特征的接口(interface)。

关于php - 特征不只是组合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9532093/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com