Tengo una aplicación basada en Squeryl. Defino mis modelos como clases de casos, principalmente porque encuentro conveniente tener métodos de copia.
Tengo dos modelos que están estrictamente relacionados. Los campos son los mismos, muchas operaciones son comunes y deben almacenarse en la misma tabla de base de datos. Pero hay algún comportamiento que solo tiene sentido en uno de los dos casos, o que tiene sentido en ambos casos pero es diferente.
Hasta ahora solo he usado una única clase de caso, con una bandera que distingue el tipo de modelo, y todos los métodos que difieren según el tipo de modelo comienzan con un if. Esto es molesto y no del todo seguro.
Lo que me gustaría hacer es factorizar el comportamiento y los campos comunes en una clase de caso ancestro y que los dos modelos reales hereden de ella. Pero, hasta donde tengo entendido, heredar de clases de casos está mal visto en Scala, e incluso está prohibido si la subclase es en sí misma una clase de casos (no es mi caso).
¿Cuáles son los problemas y las trampas que debería tener en cuenta al heredar de una clase de caso? ¿Tiene sentido en mi caso hacerlo?