J'ai un trait et des classes qui l'étendent. Le problème est que toutes les méthodes du trait doivent être implémentées statiquement, donc je les mets dans les objets compagnons correspondants. J'ai écrit quelque chose comme :
A.scala
trait A
C1.scala
class C1 extends A {
override def F = C1.F
}
object C1 extends A {
def F: String = ???
}
...
Comme la méthode F
doit être implémenté deux fois, j'ai ajouté un trait d'accompagnement correspondant.
Maintenant, j'ai quelque chose comme :
A.scala
trait A
AC.scala
trait AC {
def F: String
}
C1.scala
class C1 extends A {
}
object C1 extends AC {
def F: String = ???
}
C2.scala
class C2 extends A {
}
object C2 extends AC {
def F: String = ???
}
...
Je me sens un peu bizarre parce qu'il n'y a rien d'autre qu'un trait vide. A
dans A.scala. Je me demande s'il y a une meilleure façon d'organiser les codes.