讓我解釋一下;-)Scala的情況下物體污染
以下兩個類都在包com.company.foo
RoleGroup.scala
abstract class RoleGroup
case object ADMIN extends RoleGroup
case object MEMBER extends RoleGroup
MailSender.scala
abstract class MailSender
case object ADMIN extends MailSender
case object STAFF extends MailSender
case object ACCOUNTANT extends MailSender
這裏的問題是,ADMIN是模糊的,因爲有沒有命名空間分離案件對象。似乎每個軟件包只能有一個唯一命名的案例對象。
我想我可以基於功能a la mailADMIN,roleADMIN等命名案例對象。或者我應該創建適當的枚舉並忘記case對象?或者採取其他方法?
在這種情況下,它看起來像使用枚舉將是一個好主意,因爲您可以指定'RoleGroup.Admin'與'MailSender.Admin'而不必擔心命名空間污染。 – adelbertc 2012-07-12 21:08:58
是的,這似乎是路要走,只是想看看有什麼選擇。也許案件對象僅用於本地範圍,或者不存在名稱衝突的機會。 – virtualeyes 2012-07-12 21:14:14