Sobes.tech
Senior

Šta je DCI?

sobes.tech АИ

Одговор од АИ

DCI (Data-Context-Interaction) je arhitektonski obrazac koji deli sistem na tri glavna dela:

  • Podaci: Objekti koji predstavljaju entitete domena (npr., User, Account). Oni sadrže stanje, ali ne poznaju poslovnu logiku.
  • Kontekst: Prikuplja potrebne podatke i povezuje ih sa ulogama u određenoj transakciji. Kontekst zna koji objekti igraju koje uloge.
  • Interakcija: Uloge koje definišu poslovnu logiku primenjenu na podatke u kontekstu. Konkretne radnje koje se mogu izvršiti nad podacima u određenoj situaciji.

DCI se fokusira na to kako ljudi razmišljaju o interakciji objekata u određenom scenariju, a ne samo na strukturnu organizaciju podataka. Cilj mu je da učini poslovnu logiku jasnijom i lakšom za čitanje.

Primer: Prenos novca između računa.

  • Podaci: Account (stanje: saldo)
  • Kontekst: "Prenos novca", koji povezuje dva objekta Account sa ulogama "Izvor" i "Primaoc".
  • Interakcija: Uloge "Izvor" (metod withdraw) i "Primaoc" (metod deposit). Poslovna logika: provera dostupnih sredstava, promena salda.

Glavne prednosti DCI:

  • Bolja čitljivost koda: Poslovna logika postaje izraženija i lakša za praćenje.
  • Bolje razumevanje domena: Šablon odražava stvarne interakcije između objekata.
  • Veća fleksibilnost: Nove interakcije mogu biti dodate bez izmene postojećih objekata podataka.
  • Smanjenje složenosti: Fokusira se na kratke, izolovane transakcije.

DCI se može implementirati u različitim programskim jezicima, iako su neki jezici pogodniji za njegovu podršku (npr., Scala sa traits).