У мене є додаток, заснований на Squeryl. Я визначаю свої моделі як кейси, здебільшого тому, що мені зручно мати методи копіювання.
У мене є дві моделі, які суворо пов’язані. Поля однакові, багато операцій спільні, і їх слід зберігати в одній таблиці БД. Але є така поведінка, яка має сенс лише в одному з двох випадків, або яка має сенс в обох випадках, але відрізняється.
Дотепер я використовував лише один клас case, із позначкою, що відрізняє тип моделі, а всі методи, що відрізняються залежно від типу моделі, починаються з if. Це дратує і не зовсім безпечно.
Що я хотів би зробити, це врахувати загальну поведінку та поля класу справи предків і мати дві фактичні моделі, які успадковуються від нього. Але, наскільки я розумію, наслідування з класів кейсів заборонено в Scala і навіть заборонено, якщо сам підклас є класом кейсу (не мій випадок).
Які проблеми та підводні камені мені слід пам’ятати при успадкуванні від класу справи? Чи є сенс у моєму випадку це робити?