天天看點

[scala代碼風格指南]--文檔

英文原文:​​http://docs.scala-lang.org/style/​​

譯文如下:

通常,檔案應包含單個邏輯編譯單元。通過“邏輯”我的意思是一個類,特征或對象。本指南的一個例外是具有伴随對象的類或特征。伴随對象應與其相應的類或特征分組在同一檔案中。這些檔案應該根據它們包含的類,特征或對象來命名:

package com.novell.coolness      

class

Inbox

{

...

}

// companion object object

Inbox

{

...

}這些編譯單元應放在目錄中命名 ​

​Inbox.scala​

​的​

​com/novell/coolness​

​檔案中。簡而言之,Java檔案命名和定位慣例應該是首選的,盡管Scala允許在這方面有更大的靈活性。

多單元檔案

盡管上面說過,但是有一些重要的情況需要在單個檔案中包含多個編譯單元。一個常見的例子是密封特性和幾個子類(通常模拟功能語言中的ADT語言功能):

sealed trait Option[+A]      

case

class

Some

[

A

](

a

:

A

)

extends

Option

[

A

]

case

object

None

extends

Option

[

Nothing

]

由于密封的超類(和特征)的性質,所有子類型都 必須包含在同一個檔案中。是以,這種情況絕對符合一個單一檔案的偏好應被忽略的情況。

另一種情況是當多個類邏輯上形成一個單一的,凝聚力的群體時,将概念分享到通過将其包含在單個檔案中來大大地提供維護的點。這些情況比上述密封超類異常難以預測。一般來說,如果在單個檔案中對多個機關進行長期維護和開發更容易,而不是跨多個進行分散,那麼這種組織政策應該優先于這些類。但是,請記住,當單個檔案中包含多個單元時,在進行更改的時候,找到特定單元往往更加困難。