¿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.

Respuestas a la pregunta(6)

Su respuesta a la pregunta