Sobes.tech
Senior

Mi az a DCI?

sobes.tech MI

Válasz az MI-től

A DCI (Data-Context-Interaction) egy architekturális minta, amely a rendszert három fő részre osztja:

  • Adatok: Olyan objektumok, amelyek a domén entitásait képviselik (például User, Account). Állapotot tartalmaznak, de nem ismerik az üzleti logikát.
  • Környezet: Összegyűjti a szükséges adatokat, és összekapcsolja azokat szerepekkel egy adott tranzakcióban. A környezet tudja, mely objektumok játszanak szerepeket.
  • Interakció: Szerepek, amelyek meghatározzák az üzleti logikát, amit az adatokon végrehajtanak a környezetben. Konkrét műveletek, amelyeket adott helyzetben lehet végrehajtani az adatokon.

A DCI arra fókuszál, hogy az emberek hogyan gondolkodnak az objektumok közötti kölcsönhatásról egy adott forgatókönyvben, nem csak az adatok strukturális szervezéséről. Célja, hogy az üzleti logikát világosabbá és könnyebben olvashatóvá tegye.

Példa: Pénzátutalás számlák között.

  • Adatok: Account (állapot: egyenleg)
  • Környezet: "Pénzátutalás", amely két Account objektumot köt össze szerepekkel: "Forrás" és "Címzett".
  • Interakció: "Forrás" szerep (withdraw metódus) és "Címzett" szerep (deposit metódus). Üzleti logika: a rendelkezésre álló források ellenőrzése, az egyenlegek módosítása.

A DCI fő előnyei:

  • Kód olvashatóságának javítása: Az üzleti logika kifejezőbbé és könnyebben követhetővé válik.
  • A domain jobb megértése: A minta tükrözi az objektumok közötti valós kölcsönhatásokat.
  • Nagyobb rugalmasság: Új kölcsönhatások hozzáadása anélkül, hogy a meglévő adatobjektumokat módosítanánk.
  • Komplexitás csökkentése: Rövid, elszigetelt tranzakciókra összpontosít.

A DCI különböző programozási nyelvekkel valósítható meg, bár néhány nyelv jobban támogatja (például Scala trait-ekkel).