Sobes.tech
Middle

Koje obrasce dizajna poznajete?

sobes.tech АИ

Одговор од АИ

Kreatori:

  • Fabricki metod (Factory Method): Definiše interfejs za kreiranje objekta, ali omogućava podklasama da odluče koji će klasu instancirati.
  • Apstraktna fabrika (Abstract Factory): Pruža interfejs za kreiranje porodica međusobno povezanih ili zavisnih objekata bez specificiranja njihovih konkretnih klasa.
  • Graditelj (Builder): Odvaja konstrukciju složenog objekta od njegove prezentacije, omogućavajući istoj proceduri konstrukcije da stvori različite prikaze.
  • Prototip (Prototype): Kreira nove objekte kopiranjem postojećeg primera.
  • Singleton (Singleton): Osigurava da klasa ima samo jedan primer i pruža globalnu tačku pristupa tom primeru.

Strukturni:

  • Adapter (Adapter): Pretvara interfejs jedne klase u drugi koji očekuju klijenti.
  • Most (Bridge): Odvaja apstrakciju od njene implementacije, tako da mogu da se menjaju nezavisno.
  • Složeni (Composite): Kombinuje objekte u stablo strukture za predstavljanje hijerarhija deo-ceo. Omogućava klijentima da rade sa pojedinačnim objektima i njihovim kompozicijama na ujednačen način.
  • Dekorator (Decorator): Dinamički dodaje nove odgovornosti objektu. Fleksibilna alternativa za nasleđivanje za proširenje funkcionalnosti.
  • Fasada (Facade): Pruža ujedinjeni interfejs za skup interfejsa podsistema. Olakšava korišćenje podsistema.
  • Flyweight (Flyweight): Efikasno deli veliki broj sličnih objekata.
  • Proksi (Proxy): Pruža zamenjujući objekat koji kontroliše pristup drugom objektu.

Ponašajuće:

  • Lanac odgovornosti (Chain of Responsibility): Omogućava prosleđivanje zahteva redom kroz lanac obrađivača. Svaki obrađivač odlučuje da li će obraditi zahtev ili ga proslediti sledećem.
  • Komanda (Command): Inkapsulira zahtev kao objekat, omogućavajući klijentima da parametrize različite zahteve, stavljaju ih u red ili ih beleže, kao i da podrže operacije poništavanja.
  • Iteratori (Iterator): Pruža način sekvencijalnog pristupa elementima složenog objekta bez otkrivanja njegove unutrašnje strukture.
  • Mediator (Mediator): Definiše objekat koji inkapsulira kako skup objekata komunicira. Podstiče slabije povezivanje, sprečavajući eksplicitne reference između objekata.
  • Memento (Memento): Beleži i eksterno čuva unutrašnje stanje objekta bez narušavanja enkapsulacije, tako da se objekat kasnije može vratiti u to stanje.
  • Posmatrač (Observer): Definiše zavisnost "jedan prema mnogima" između objekata tako da kada se stanje jednog promeni, svi zavisni objekti budu automatski obavešteni i ažurirani.
  • Stanje (State): Omogućava objektu da menja svoje ponašanje kada se njegovo unutrašnje stanje promeni. Čini se kao da menja klasu.
  • Strategija (Strategy): Definiše porodicu algoritama, kapsulira svaki i čini ih zamenjivim. Omogućava algoritmu da se menja nezavisno od klijenata koji ga koriste.
  • Šablonski metod (Template Method): Definiše kostur algoritma u operaciji, odlažući neke korake na podklase. Omogućava podklasama da redefinišu neke korake algoritma bez menjanja njegove strukture.
  • Posetilac (Visitor): Predstavlja operaciju koja se mora izvršiti nad elementima strukture objekata. Omogućava definisanje nove operacije bez menjanja klasa elemenata na kojima radi.