Comme d'autres le disent, l'idéal serait que la classe de revenu des travailleurs permette le paramétrage de la constante, rendant cette classe indépendante de cette valeur.
En fin de compte, l'application appelante pourrait également permettre le paramétrage en termes de configuration externe (par exemple un fichier). Une fois que nous avons une configuration externe, nous pouvons changer le taux de taxe - mais considérez que si le fichier de configuration n'est lu qu'une seule fois au démarrage, l'application devra être redémarrée pour que les pourcentages de taxe mis à jour prennent effet, c'est donc quelque chose à conserver esprit. Nous pourrions fournir une fonctionnalité d'application pour relire la configuration lorsque cela est demandé, ou nous pourrions fournir un mécanisme plus compliqué qui remarque lorsque le fichier de configuration change ...
À long terme, vous constaterez peut-être que les problèmes fiscaux nécessitent plus qu'un simple pourcentage - par exemple, qu'un jour les lois fiscales seront plus complexes et nécessiteront plusieurs pourcentages et certaines constantes (par exemple, le montant inférieur à 10000 $ taxé à X%, tandis que le le reste est taxé à Y%).
Cela suggère essentiellement d'utiliser un modèle de stratégie, où la classe principale en question ici accepte un objet de stratégie pour calculer la taxe.
Les différentes stratégies (et les constantes% et s) doivent être choisies dans le fichier de configuration, et maintenant, l'ajout d'une nouvelle stratégie nécessite l'ajout de nouveau code, mais pas nécessairement des mises à jour du code existant.
Chaque stratégie peut savoir comment analyser / interpréter ses propres arguments de configuration externes, ainsi que la façon de calculer la taxe réelle.
Dynamiquement, la taxe peut en outre dépendre des paramètres régionaux en vigueur, vous pouvez donc avoir des paramètres régionaux associés aux revenus ou aux employés (ou les deux). Dans la configuration externe, nous pouvons associer les paramètres régionaux à la stratégie fiscale.
Voir également l' injection de dépendance , où nous gérons ces choses de manière explicite.