Mi stavo chiedendo se esiste un modo migliore per gestire i dati di configurazione "statici" del sistema. Supponiamo che tu abbia un sistema che offre diverse operazioni che sono tradotte in codice in codice operativo, ma è necessario conservare altre informazioni correlate a tale operazione come descrizione, priorità ecc. Il modo brutto che ho visto sono le costanti finali statiche pubbliche. Il modo migliore che stavo usando prima era creare una classe, ad esempio:
public abstract Codebook{
private int id;
private String description;
... getters setters
}
Quindi per la categoria data - in questo caso OperationalCode:
public class OperationalCode extends Codebook{}
Le istanze di questa classe sono state create con i dati di BD. Ora non posso usare DB quindi ho pensato di creare delle fabbriche che popoleranno le classi con un determinato set di parametri. MA tutto è hardcoded alla classe di fabbrica che non mi piace.
C'è una soluzione migliore su come affrontare questo caso perché credo di non essere il primo a risolverlo. Qualche pratica struttura o ...
Non ero probabilmente abbastanza chiaro. Sono pienamente consapevole della funzionalità delle proprietà in java ma non corrisponde ai criteri. Lasciatemi spiegare di più: Quando dico configurazione intendo configurazione aziendale. Non sai mai quanti oggetti possibili otterrai. Ad esempio nel sistema bancario è possibile annullare il contratto e si è costretti a fornire un motivo per la risoluzione: elenco predefinito che include testo, codice nel sistema e traduzione in codici di sistemi di terze parti in cui il sistema deve eseguire anche un'operazione di annullamento. Queste possibilità devono essere esternalizzate dal tuo sistema in quanto probabilmente si spegneranno. I file di proprietà non sembrano una scelta giusta e il sito opposto - usando Buisiness Rule Systems (ad esempio Drools) mi sembra eccessivo. L'uso di enumerazioni con proprietà specificate non si adatta bene alla chiusura perché di volta in volta è necessario essere in grado di riconoscere che è la configurazione e non solo normale enum. Che il motivo dell'ereditarietà di classe - l'operatore instanceof risolva questo problema.