Sobes.tech
Senior

Wat is DCI?

sobes.tech AI

Antwoord van AI

DCI (Data-Context-Interaction) is een architectuurpatroon dat het systeem verdeelt in drie hoofdonderdelen:

  • Data: Objecten die domeinentiteiten vertegenwoordigen (bijvoorbeeld User, Account). Ze bevatten de toestand, maar kennen de bedrijfslogica niet.
  • Context: Verzamelt de benodigde gegevens en koppelt ze aan rollen in een specifieke transactie. De context weet welke objecten welke rollen spelen.
  • Interactie: Rollen die de bedrijfslogica definiëren die op de gegevens in de context wordt toegepast. Specifieke acties die op de gegevens kunnen worden uitgevoerd in een bepaalde situatie.

DCI richt zich op hoe mensen denken over de interactie van objecten in een bepaald scenario, niet alleen op de structurele organisatie van gegevens. Het is bedoeld om de bedrijfslogica explicieter en gemakkelijker leesbaar te maken.

Voorbeeld: Geld overmaken tussen rekeningen.

  • Data: Account (toestand: saldo)
  • Context: "Geld overmaken", dat twee Account-objecten verbindt met de rollen "Bron" en "Ontvanger".
  • Interactie: Rollen "Bron" (methode withdraw) en "Ontvanger" (methode deposit). Bedrijfslogica: controleer beschikbare middelen, wijzig saldi.

Belangrijkste voordelen van DCI:

  • Betere leesbaarheid van de code: De bedrijfslogica wordt meer uitdrukkelijk en gemakkelijk te volgen.
  • Beter begrip van het domein: Het patroon weerspiegelt de echte interacties tussen objecten.
  • Grotere flexibiliteit: Nieuwe interacties kunnen worden toegevoegd zonder de bestaande gegevensobjecten te wijzigen.
  • Vermindering van complexiteit: Richt zich op korte, geïsoleerde transacties.

DCI kan worden geïmplementeerd met verschillende programmeertalen, hoewel sommige talen beter geschikt zijn voor ondersteuning (bijvoorbeeld Scala met traits).