Mam aplikację opartą na Squeryl. Moje modele definiuję jako klasy przypadków, głównie dlatego, że uważam za wygodne metody kopiowania.
Mam dwa modele, które są ze sobą ściśle powiązane. Pola są takie same, wiele operacji jest wspólnych i mają być przechowywane w tej samej tabeli DB. Ale jest pewne zachowanie, które ma sens tylko w jednym z dwóch przypadków lub ma sens w obu przypadkach, ale jest inne.
Do tej pory używałem tylko jednej klasy przypadku, z flagą odróżniającą typ modelu, a wszystkie metody, które różnią się w zależności od typu modelu, zaczynają się od if. Jest to denerwujące i niezupełnie bezpieczne.
To, co chciałbym zrobić, to wziąć pod uwagę typowe zachowanie i pola w klasie przypadku przodka i sprawić, by te dwa rzeczywiste modele odziedziczyły po nim. Ale, o ile rozumiem, dziedziczenie z klas przypadków jest źle widziane w Scali i jest nawet zabronione, jeśli podklasa sama jest klasą przypadku (nie mój przypadek).
Jakie są problemy i pułapki, na które powinienem zwrócić uwagę podczas dziedziczenia z klasy przypadku? Czy w moim przypadku ma to sens?