67得票3回答
如何对PHP traits进行单元测试

我想知道如何对一个PHP trait进行单元测试的解决方案。 我知道我们可以测试使用该trait的类,但我想知道是否有更好的方法。 提前感谢任何建议 :) 编辑 一种替代方案是在测试类中使用该Trait,就像我下面要演示的那样。 但是我并不喜欢这种方法,因为不能保证Trait、类和...

66得票1回答
Scala中的特征和抽象方法覆盖

我有一个基础的抽象类(trait),它有一个抽象方法foo()。它被多个派生类扩展和实现。我想创建一个trait,可以混入到派生类中,以便它实现foo(),然后调用派生类的foo()。 类似这样的内容:trait Foo { def foo() } trait M extends Fo...

64得票8回答
如何在C#中实现“trait”设计模式?

我知道C#中没有这个特性,但PHP最近增加了一个叫做Traits的特性,一开始我觉得有点儿傻,但后来开始思考就不这么认为了。 假设我有一个基类叫做Client,Client有一个名为Name的属性。 现在我正在开发一个可重复使用的应用程序,将被许多不同的客户使用。所有客户都认为客户端应该有...

62得票3回答
我为另一个trait实现了一个trait,但无法调用两个trait的方法。

我有一个被称为Sleep的特点:pub trait Sleep { fn sleep(&self); } 我可以为每个结构提供不同的睡眠实现,但事实证明大多数人以非常少的方式睡觉。 你可以在床上睡觉:pub trait HasBed { fn sleep_in_bed(...

61得票1回答
为什么Scala特质可以扩展类?

我看到 Scala 中的特质与 Java 中的接口相似(但在 Java 中,接口扩展其他接口,它们不扩展类)。我在 SO 上看到了一个关于特质使用的示例,其中一个特质扩展了一个类。 这是为什么呢?为什么特质可以扩展类?

59得票2回答
PHP中Trait和抽象类的区别

我最近接触到 PHP 中的 Traits,并试图理解它们。在我的研究中,我偶然发现了这个 Stack Overflow 问题:Traits vs. Interfaces。被接受的答案提到了以下内容: 接口定义了实现类必须实现的一组方法。 当使用 trait 时,方法的实现也会随之而来——这...

59得票4回答
在Laravel 5中应将特征放在哪里?

我正在使用Laravel 5,并且对于Traits文件在Laravel 5目录结构中的放置位置感到困惑。它们应该存在于public、resources或任何其他目录中吗?

58得票1回答
在Groovy中,@Delegate、@Mixin和Traits有什么区别?

请问何时应该使用 Groovy Traits,而不是 Mixins (@Mixin) 和 Delegates (@Delegate)?也许一些权衡和设计方面的考虑会有所帮助。 它们都似乎允许重用多个“类”的行为。谢谢。:-) 这个 SO 主题也很有帮助:Difference between...

54得票10回答
如何在PHP中检查一个类是否使用了一个trait?

注意,一个特质可能会使用其他特质,所以类可能不直接使用该特质。而且这个类可能是从使用该特质的父类继承而来的。 这是一个可以在几行代码内解决的问题还是我需要循环做些什么?

52得票2回答
为什么我要在特质上实现方法而不是作为特质的一部分?

我试图更好地理解Any特质,发现它有一个用于特质本身的impl块。我不理解这个结构的目的,甚至不知道它是否有一个特定的名称。 我对“普通”特质方法和在impl块中定义的方法进行了一些小实验: trait Foo { fn foo_in_trait(&self) { ...