¿Qué patrones / patrones funcionan mejor para desarrollar un motor de reglas / decisiones [cerrado]?
Estoy trabajando en un motor de decisión / motor de evaluación de reglas. Por ejemplo:
Entrada: Cliente y todas las infracciones cometidas por el cliente.
Producto: Consecuencias de los delitos.
Un caso de muestra sería:
Entrada: Cliente (Jhonny Chimpo, 999-00-1111), Ofensas (ventana de Broke, jefe abofeteado, líder de equipo pateado en su ingle)
Salida: Obtiene resbalón rosa
Así que el código que quiero escribir evalúa diferentes delitos según las reglas de cada delito y el delito combinado. El código actual es solo un laberinto de afirmaciones if y else. Estoy seguro de que tales problemas de negocios son comunes. ¿Qué patrón de diseño / empresa se usa generalmente para resolver un problema como este?
¿Es el patrón de especificación? Quiero que el código esté abierto por extensión, limpio y flexible.