我最近开始使用Scala编程,来自Python和Java我想知道在Scala中定义对象/类时的正确方法或接受的方式是什么.与python一样,Scala支持在单个文件中添加多个类或对象定义.
纯粹从公认的结构角度来看,每个对象都需要在自己的文件中定义,还是允许自己选择?
DCK*_*ing 50
有关此问题的官方Scala风格指南中有一章.它本身很清楚,但我会在这里留下一些引用.
核心思想是:
通常,文件应包含单个逻辑编译单元."逻辑"是指一个阶级,特征或对象.
当然,伴侣对象有一个例外:
本指南的一个例外是具有伴随对象的类或特征.伴随对象应与其对应的类或特征在同一文件中分组.
还有一个事实是sealed只能在同一个文件中工作.
尽管如上所述,但有一些重要的情况需要在单个文件中包含多个编译单元.一个常见的例子是密封特性和几个子类.由于密封超类(和特征)的性质,所有子类型必须包含在同一文件中.
大多数情况下,案例类只是简单的数据容器,可以组合在一起.
另一种情况是,多个类在逻辑上形成一个单一的,有凝聚力的组,通过将概念包含在单个文件中来共享概念,从而大大提供维护.
最后,豁免多单元Scala文件有一个命名约定:
所有多单元文件都应该给出带有小写首字母的camelCase名称.
因此:将Scala类和对象放在单独的文件中,除非它们属于上述三个异常中的一个.
Jor*_*mer 11
在Scala中,它是完全有效的单个文件中有多个类,只要他们是紧密相关的.
但并非所有语言都鼓励这种惯例,我认为值得考虑其原因.
当人们将多个类放入单个文件中时,我个人不喜欢它,因为它使得查找类定义变得更加困难.这在代码审查中得到了放大,我希望能够尽快审查代码而无需深入研究.
缺点
grep找到一个文件优点
| 归档时间: |
|
| 查看次数: |
16919 次 |
| 最近记录: |