Scala'da nesneyi taklit etmenin "doğru" yolu nedir? ÖrneğinScala nesnesi, tür/değer takma adları sağlayan özelliklere sahip nesneler
, ben, en defalarca RoleGroup ithal etmek istemiyorum beri (SBT alt projelerine bölünür) başvurumun çeşitli yerlerinde
trait RoleGroup
object RoleGroup {
case object ADMIN extends RoleGroup
case object MEMBER extends RoleGroup
case object PUBLIC extends RoleGroup
}
yılında kapsamda bir RoleGroup gerek diyelim takma RoleGroup özelliği karar verdi ve şöyle tipi ve val meslektaşları içine nesne:
package com.developer
package controller
trait ControllerBase {
type RoleGroup = controller.RoleGroup
val RoleGroup = controller.RoleGroup
...
}
ve sonra alt proje paketi nesneleri ücretsiz ithalatı almak için yardımcı özelliği uzatabilirsiniz:
package com.client
package object member
extends com.developer.controller.ControllerBase
Kapsamda olması gereken diğer durum nesneleri için de aynısını yapıyorum. Bu mantıklı bir çözüm mü? yani farkında olmam gereken herhangi bir sorun/sorun var mı? Her şey derlenmiş ve tarayıcı test sayfaları, ön-refakatlı uygulamada olduğu gibi çalışır, ancak bu en iyi yaklaşım olup olmadığından emin değilim.
+1, ilginç, bu diğer ad tarifi olmalıdır ;-) özellikler/sınıflar ve nesneler ve diğerleri için vals için. Bu yaklaşımla bir çok ithalat boilerplate'i kesinlikle azaltabilir – virtualeyes