Ho un'applicazione basata su Squeryl. Definisco i miei modelli come classi case, soprattutto perché trovo conveniente avere metodi di copia.
Ho due modelli strettamente correlati. I campi sono gli stessi, molte operazioni sono in comune e devono essere memorizzate nella stessa tabella DB. Ma c'è un comportamento che ha senso solo in uno dei due casi, o che ha senso in entrambi i casi ma è diverso.
Finora ho utilizzato una sola classe case, con un flag che distingue il tipo di modello, e tutti i metodi che differiscono in base al tipo di modello iniziano con un if. Questo è fastidioso e non del tutto sicuro per i tipi.
Quello che vorrei fare è fattorizzare il comportamento e i campi comuni in una classe caso antenato e far ereditare i due modelli effettivi da esso. Ma, per quanto ne so, l'ereditarietà da classi case è disapprovata in Scala, ed è persino proibita se la sottoclasse è essa stessa una classe case (non il mio caso).
Quali sono i problemi e le insidie di cui dovrei essere consapevole nell'ereditare da una classe case? Ha senso nel mio caso farlo?