J'ai une application basée sur Squeryl. Je définis mes modèles comme des classes de cas, surtout parce que je trouve pratique d'avoir des méthodes de copie.
J'ai deux modèles strictement liés. Les champs sont identiques, de nombreuses opérations sont communes et doivent être stockées dans la même table DB. Mais il y a un comportement qui n'a de sens que dans l'un des deux cas, ou qui a du sens dans les deux cas mais qui est différent.
Jusqu'à présent, je n'ai utilisé qu'une seule classe de cas, avec un indicateur qui distingue le type de modèle, et toutes les méthodes qui diffèrent en fonction du type de modèle commencent par un if. C'est ennuyeux et pas tout à fait sûr.
Ce que je voudrais faire est de factoriser le comportement et les champs communs dans une classe de cas ancêtre et que les deux modèles réels en héritent. Mais, pour autant que je sache, hériter des classes de cas est mal vu dans Scala, et est même interdit si la sous-classe est elle-même une classe de cas (pas mon cas).
Quels sont les problèmes et les pièges dont je dois être conscient en héritant d'une classe de cas? Est-ce que cela a du sens dans mon cas de le faire?