Senior
¿Qué es DCI?
sobes.tech AI
Respuesta de la IA
DCI (Data-Context-Interaction) es un patrón arquitectónico que divide el sistema en tres partes principales:
- Datos: Objetos que representan entidades del dominio (por ejemplo,
User,Account). Contienen estado, pero no conocen la lógica de negocio. - Contexto: Reúne los datos necesarios y los vincula con roles en una transacción específica. El contexto sabe qué objetos desempeñan qué roles.
- Interacción: Roles que definen la lógica de negocio aplicada a los datos en el contexto. Acciones específicas que se pueden realizar sobre los datos en una situación determinada.
DCI se centra en cómo las personas piensan en la interacción de objetos en un escenario determinado, no solo en la organización estructural de los datos. Está diseñado para hacer la lógica de negocio más explícita y fácil de leer.
Ejemplo: Transferencia de dinero entre cuentas.
- Datos:
Account(estado: saldo) - Contexto: "Transferencia de dinero", que vincula dos objetos
Accountcon los roles de "Fuente" y "Destino". - Interacción: Roles "Fuente" (método
withdraw) y "Destino" (métododeposit). Lógica de negocio: verificar fondos disponibles, modificar saldos.
Ventajas principales de DCI:
- Mejor legibilidad del código: La lógica de negocio se vuelve más expresiva y fácil de seguir.
- Mejor comprensión del dominio: El patrón refleja las interacciones reales entre objetos.
- Mayor flexibilidad: Nuevas interacciones pueden añadirse sin modificar los objetos de datos existentes.
- Reducción de la complejidad: Se centra en transacciones cortas y aisladas.
DCI puede implementarse con diferentes lenguajes de programación, aunque algunos lenguajes son más adecuados para su soporte (por ejemplo, Scala con traits).