У меня есть приложение, основанное на Squeryl. Я определяю свои модели как классы case, в основном, так как удобнее иметь методы копирования.
У меня две модели, которые строго связаны друг с другом. Поля одинаковы, многие операции являются общими, и они должны храниться в одной таблице DB. Но существует некоторое поведение, которое имеет смысл только в одном из двух случаев или имеет смысл в обоих случаях, но отличается.
До сих пор я использовал только один класс case с флагом, который отличает тип модели, и все методы, которые отличаются в зависимости от типа модели, начинаются с if. Это раздражает и не совсем безопасно.
То, что я хотел бы сделать, - это фактор общего поведения и полей в классе класса предков и унаследовать от них две фактические модели. Но, насколько я понимаю, наследование классов case недовольно в Scala и даже запрещено, если подкласс сам является классом case (не мой случай).
Каковы проблемы и проблемы, которые я должен знать о наследовании из класса case? Имеет ли смысл в моем случае сделать это?