Come altri stanno dicendo, idealmente la classe di reddito dei lavoratori 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 configurata la configurazione esterna, è possibile modificare l'aliquota fiscale, anche se si consideri che se il file di configurazione viene letto una sola volta all'avvio, l'applicazione dovrà essere riavviata affinché le percentuali fiscali aggiornate diventino effettive, pertanto è necessario tenere mente. Potremmo fornire una funzione di applicazione per rileggere la configurazione quando richiesto, 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 percentuale - ad esempio, un giorno le leggi fiscali sono più complesse e richiedono diverse percentuali e alcune costanti (ad esempio l'importo inferiore a $ 10 k tassato a X% , mentre il resto è tassato a Y%).
Questo in pratica suggerisce di utilizzare un modello di strategia, in cui la classe principale in questione accetta qui un oggetto strategico per il calcolo della tassa.
Le varie strategie (e% e $ costanti) dovrebbero essere selezionabili dal file di configurazione, e ora, aggiungere una nuova strategia richiede l'aggiunta di qualche 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, la tassa può dipendere ulteriormente dalle impostazioni locali, pertanto potresti avere impostazioni locali associate alle entrate o ai dipendenti (o entrambi). Nella configurazione esterna, potremmo associare le impostazioni locali alla strategia fiscale.
Vedi anche iniezione di dipendenza , dove gestiamo esplicitamente queste cose.