Ich habe eine Anwendung, die auf Squeryl basiert. Ich definiere meine Modelle als Fallklassen, vor allem, weil ich Kopiermethoden für zweckmäßig halte.
Ich habe zwei Modelle, die eng miteinander verbunden sind. Die Felder sind gleich, viele Operationen sind gemeinsam und sie sollen in derselben DB-Tabelle gespeichert werden. Es gibt jedoch ein Verhalten, das nur in einem der beiden Fälle Sinn macht oder in beiden Fällen Sinn macht, aber unterschiedlich ist.
Bisher habe ich nur eine einzige Fallklasse verwendet, mit einem Flag, das den Typ des Modells unterscheidet, und alle Methoden, die sich je nach Typ des Modells unterscheiden, beginnen mit einem if. Das ist nervig und nicht ganz typsicher.
Was ich tun möchte, ist, das allgemeine Verhalten und die Felder in einer Ahnenfallklasse zu berücksichtigen und die beiden tatsächlichen Modelle davon erben zu lassen. Soweit ich weiß, ist das Erben von Fallklassen in Scala verpönt und sogar verboten, wenn die Unterklasse selbst eine Fallklasse ist (nicht mein Fall).
Was sind die Probleme und Fallstricke, die ich beim Erben von einer Fallklasse beachten sollte? Ist es in meinem Fall sinnvoll, dies zu tun?