Ich versuche allgemeine apply
Methode zu schreiben, um als Factory-Methode für untergeordnete Klassen zu dienen. Was ich kam mit folgt:Begleitobjekt für Merkmal in Scala
trait A
object A {
def apply[T <: A](someParam: String): T {
new T()
}
}
class B private extends A
class C private extends A
So kann man neue B oder C-Instanz erstellen:
def main(args: Array[String]): Unit = {
A[B]("test")
}
Ist es akzeptabel, dass Merkmal ein begleitendes Objekt Gibt es einen besseren Weg, dies zu implementieren ?
Soweit Begleiter-Objekt für ein Merkmal geht, ist es in Ordnung. Was deine andere Frage betrifft ... Hast du versucht, deinen Code zu kompilieren? – Dima
Sie wollen wahrscheinlich 'Siegel Merkmal A' und http://engineering.monsanto.com/2016/01/11/algebraic-data-types/ – Reactormonk
@Reactormonk' C' und 'B' sind nicht in der gleichen Datei, also bin ich Ich bin mir nicht sicher über "versiegelte Eigenschaft", aber ich werde diesen Link überprüfen. – gorros