当trait与class相同时,Scala特性命名约定

时间:2013-06-14 21:54:54

标签: scala naming convention traits

我需要为我的班级创建一个特性,仅用于我的单元测试的依赖注入。我并没有真正预见到这个特性的任何其他实现 - 只需要将其存根以进行单元测试。假设我的类名为“Foo”...在.NET中我会调用我的界面“IFoo”。人们在这种情况下使用什么惯例?

2 个答案:

答案 0 :(得分:3)

当只有1个特征的实现可能时,使用“Impl”约定是有意义的:trait = Foo和class = FooImpl。虽然我从来没有真正成为这个惯例的粉丝,因为它限制了一个实现,听起来这正是我在这里所需要的。

当更多的类实现接口/特性时,更有可能命名每个实现更自然地流动。

答案 1 :(得分:0)

akka-spray的激活模板使用DIY注射模式。它们命名了一个主要接口Core及其实现RunCore。看起来,他们建议根据其预期用途为实现提供一个描述性名称,而不仅仅是impl。完成后,您可以将模拟命名为TestCore