Pasar objetos de regla en vez de pasar los ID

Cuando utilice la expresión create para crear un objeto de regla interna, puede pasar datos al nuevo objeto de regla mediante el uso del bloque de inicialización y/o especificar elementos.

Si los datos que está pasando incluyen una referencia a los datos externos que tienen un identificador (p. ej. un caso, identificado por un caseID), considere la posibilidad de diseñar la clase de regla para el objeto de regla creado para que se inicialice con un objeto de regla que represente dichos datos, en lugar de inicializarse mediante un valor de ID.

El uso de un objeto de regla de este tipo para la inicialización puede aumentar la "seguridad de tipo" de los datos; puede ayudar a evitar que otro diseñador de reglas cree sus propios objetos de regla interna para la misma clase de regla, pero pasando accidentalmente un ID que representa una clase diferente de datos externos.

Es probable que pasar la clase incorrecta de ID haga que fallen las reglas en tiempo de ejecución (por ejemplo porque un intento de convertir un objeto de regla para ese ID no encontrará los datos subyacentes); mientras que pasar un objeto de regla para la seguridad de tipo permitirá que el validador de conjunto de reglas CER detecte el problema en el momento de diseño.