Supponiamo di avere dipendenti diversi di tipo Employee
memorizzati in un elenco all'interno di una classe SubCase
.
public class SubCase{
protected ArrayList<Employee> employees;
...
}
SubCase
rappresenta una parte di un progetto in cui i dipendenti lavorano.
Hanno un ruolo specifico fisso nel progetto, ma quel ruolo è all'interno
un'altra classe Project
. Il progetto conosce SubCase
ma è una relazione non prioritaria.
Normalmente, non abbiamo bisogno di conoscere il ruolo degli utenti a livello di sottocasi e, pertanto, abbiamo creato l'intera applicazione tenendo presente questo aspetto e ora è piuttosto difficile ottenere il ruolo specifico che un utente ha utilizzato Classe SubCase, ma in una sottoclasse di Subcase, è importante sapere quale tra gli utenti di una sottocartella ha un ruolo FinancialExpert.
Sarebbe un problema se facessi una variabile privata separata:
public class SubCaseExtension extends SubCase{
private User financialExpert;
}
in cui è possibile salvare financialExpert
? Usando questo, sarebbe facile sapere quale utente è l'esperto finanziario, ma formerebbe un codice duplicato perché il dipendente che è un finanziario sarà aggiunto anche al ArrayList
dei dipendenti.
I dati duplicati in questo caso possono essere giustificati?