Come altri stanno dicendo, idealmente la classe di reddito del lavoratore consentirebbe la parametrizzazione della costante, rendendo questa classe indipendente da quel valore.
In definitiva, l'applicazione chiamante potrebbe anche consentire la parametrizzazione in termini di configurazione esterna (ad esempio un file). Una volta che abbiamo una configurazione esterna, possiamo modificare l'aliquota fiscale, anche se considera che se il file di configurazione viene letto solo una volta all'avvio, l'applicazione dovrà essere riavviata per rendere effettive le percentuali fiscali aggiornate, quindi è qualcosa da mantenere mente. Potremmo fornire una funzione applicativa per rileggere la configurazione quando richiesto per farlo, oppure potremmo fornire un meccanismo più complicato che rileva quando il file di configurazione cambia ...
A lungo termine, potresti scoprire che i problemi fiscali richiedono più di una semplice percentuale, ad esempio che un giorno le leggi fiscali sono più complesse e richiedono diverse percentuali e alcune costanti (ad esempio l'importo inferiore a $ 10k tassato all'X%, mentre il resto tassato all'Y%).
Ciò suggerisce fondamentalmente l'utilizzo di un modello di strategia, in cui la classe principale in questione qui accetta un oggetto di strategia per il calcolo dell'imposta.
Le varie strategie (e% 's e $ costanti) dovrebbero essere selezionabili dal file di configurazione, e ora, l'aggiunta di una nuova strategia richiede l'aggiunta di un nuovo codice, ma non necessariamente gli aggiornamenti al codice esistente.
Ogni strategia potrebbe sapere come analizzare / interpretare i propri argomenti di configurazione esterni, insieme a come calcolare l'imposta effettiva.
Dinamicamente, l'imposta può dipendere ulteriormente dalle impostazioni internazionali, pertanto è possibile che le impostazioni locali siano associate agli utili o ai dipendenti (o entrambi). Nella configurazione esterna, potremmo associare le impostazioni locali alla strategia fiscale.
Vedi anche l' iniezione delle dipendenze , dove gestiamo queste cose in modo esplicito.