gpt4 book ai didi

smalltalk - Squeak/Pharo Trait 和 Newpeak Mixin 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 01:13:17 27 4
gpt4 key购买 nike

所以 Squeak/Pharo 支持 Traits,Newspeak 有 Mixins。有什么不同? Traits 没有 instVars 但 Mixins 有?

最佳答案

为了更好地比较并推理为什么特征是首选,您可以检查 traits paper (pdf) .

本质上,这就是 Lukas Renggli说:

Traits 成员组成一个类,并且不会更改其继承层次结构。冲突必须由特征的用户明确解决。

Mixins 被线性化到目标类的继承层次结构中。如果存在冲突的成员,则声明它们的顺序将决定调用哪个成员。这是脆弱,因为它隐式定义了组合的行为,并且类作者必须意识到潜在的冲突以及它们将如何影响生成的类。

由于 mixin 已线性化,因此它们不会遭受臭名昭著的多重继承的“菱形继承(钻石问题)”。因此,它们堆叠在一起的脆弱性质是另一个问题,我将其称为“ ruby 问题”,以与 gem 的比喻保持一致。由于一些与 moose 有关的奇怪原因,珍珠不能像 ruby 那样描述这个问题。

关于smalltalk - Squeak/Pharo Trait 和 Newpeak Mixin 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2329724/

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