Scala的特征命名约定
假设我在Scala有一个特质
trait Connection { def init(name: String) def dispose } 我想创建一个实现它的类。但我想将其命名为连接: class Connection extends Connection { // .... } 这不会奏效当然,我可以命名不同的东西,但事实证明,Scala中的命名约定说我应该将trait命名为普通类,意思是没有任何前缀,我将在C#(IConnection,IConnection将是该接口) 。 在这种特殊情况下,类的连接名称和特征更适合。 或者我在Scala的命名约定中错过了什么? 解决方法
你将一般的API提取到Connection特性本身就意味着它有多个特定的实现。这些实现当然与一些更具体的实体有关,例如一个MySQL或一个H2数据库。
根据您应用的所选架构,有几种方法可以解决您的问题: >如果您将特定的实现保留在同一个命名空间中: > myApp.Connection >但是,由于名称冗余(*连接部分)实际上并不鼓励上述,推荐使用新的软件包,例如: > myApp.Connection 要么 > myApp.Connection 如果您选择将特定的实现放在Connection的一个配套对象中。 > myApp.Connection 即使这样,尽管连接名称冲突也很容易解决,因为类型位于不同的包中,通过使用合格的引用(myApp.Connection)或限定的导入: import myApp.{Connection => GeneralConnection} //or IConnection if you insist (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |