Estoy escribiendo una clase de cálculo financiero que tendrá una serie de entradas de función de configuración, algunos valores intermedios privados y un número de funciones getter como salidas.¿Cómo puedo implementar una clase con estado de evaluación diferida con dependencias internas en Java?
Los valores intermedios privados solo dependen de los valores de entrada.
Los valores de salida (accedidos por captadores públicos) solo dependen de las entradas y los valores intermedios.
En última instancia puede dibujar todo el asunto como un grafo acíclico dirigido un tanto enredado un poco con un montón de entradas en un lado, con el tiempo que fluye a un montón de salidas en el lado derecho.
¿Cuál es la mejor manera de implementar esta clase. Tengo algunos requisitos específicos:
Donde sea posible, lazy evaluate. Cuando un aporte cambia, ahora tenemos la forma de saber qué productos pueden requerirse.
La clase tiene que ser fácil de rediseñar, por lo que se preferiría algún tipo de modelo declarativo.
Idealmente me gustaría ser capaz de decir que C depende de A y B. Si C se solicitó después de A o B habían cambiado entonces sabría THT C necesita ser re-calculada, de lo contrario C nunca necesitaría actualizarse.
¿Hay algún patrón de Java que pueda ayudarme a implementar este tipo de calculadora?
Algo así: Mantenga la entrada en un contenedor no específico; si se llama a un getter, cree un Strategy-Object basado en la entrada dada y los valores intermedios, y calcule el objeto SO como resultado. – ollins