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.