Lo que podríamos hacer es tener en una variable un script que permita calcular esa lógica y ejecutarlo en java.
Supongamos que al principio este impuesto es un porcentaje de un monto :
String code="monto * 0.1";
Bindings bindings = new SimpleBindings();
bindings.put("monto", 1000);
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByExtension("js");
try {
System.out.print(engine.eval(code, bindings));
} catch (ScriptException ex) {
//catch statement
}
Luego esto puede cambiar y el impuesto volverse màs complejo, no importa porque si lo cambiamos el programa lo ejecuta :
String code="monto * 0.01 + (monto * 0.01) * 0.21 ";
Bindings bindings = new SimpleBindings();
bindings.put("monto", 1000);
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByExtension("js");
try {
System.out.print(engine.eval(code, bindings));
} catch (ScriptException ex) {
//catch statement
}
Podemos modificar la logica sin volver a compilar, teniendo la potencia de un lenguaje script en nuestro querido java.
En fin el scripting en java es una gran herramienta que no todos conocen.