Reutilizar

En generación Discutimos los diferentes elementos que se crean y cómo se utilizan a nivel de modelo. Ahora, en esta sección, introducimos el concepto de reutilización.

La reutilización ocurre cuando usted tiene un fragmento común de código DSL que puede ser utilizado en múltiples diferentes IPF flow proyectos. Por ejemplo, considere un sistema de sanciones: muchos flujos diferentes podrían querer interactuar con un sistema de sanciones, aunque estos flujos en sí mismos pueden no tener conocimiento o relación entre sí, y pueden ser implementados por separado.

Una opción aquí sería crear un componente DSL diferente que represente un sistema de sanciones en cada modelo y luego proporcionar las muchas implementaciones separadas de esto. Si bien esto es sencillo de hacer, significaría mantener múltiples copias de esencialmente la misma capacidad y gestionar los problemas que esto probablemente introduciría. Aquí es donde entra la reutilización: la capacidad de que un modelo llame a una función en otro modelo.

En esencia, es simple. Puede importar una dependencia de un modelo a otro y luego hacer referencia a los componentes del módulo compartido desde el core uno. Un patrón típico para esto podría ser:

  • Modelo A - contiene un dominio externo que representa el sistema de sanciones.

  • Modelo B - contiene una implementación de flujo que desea llamar al sistema de sanciones.

  • Modelo C - contiene una implementación de flujo que también desea llamar al sistema de sanciones.

En este escenario, usted debe añadir el modelo A como una dependencia tanto al modelo B como al modelo C, permitiendo que ambos, B y C, utilicen los componentes (mismos) definidos en el modelo A. A nivel de generación, cada uno de los modelos A, B y C será independiente y cada uno tendrá su propio ModelDomain que necesita ser implementado, lo que significa que toda la lógica para la implementación de la función compartida se mantiene separada e aislada. Los modelos, entonces, saben cómo comunicarse entre sí, por lo que usted solo necesita implementar la lógica de sanciones en el modelo A una vez, y luego estará disponible para ambos modelos B y C simplemente importando una dependencia.

Pensemos en cómo podría verse esto, desde una perspectiva general:

reuse 1

Aquí podemos ver cómo podríamos crear nuestro custom componentes DSL y luego importar en los componentes reutilizables como sanciones. El modelo reutilizable se implementa de la misma manera que el custom ones.