Middle
Kokius projektavimo modelius žinote?
sobes.tech AI
Atsakymas iš AI
Kūrėjai:
- Faktoriaus metodas (Factory Method): Apibrėžia sąsają objektui kurti, bet leidžia pogrupiams nuspręsti, kurį klasės egzempliorių kurti.
- Abstract Factory (Abstract Factory): Teikia sąsają šeimoms, susijusioms arba priklausomoms objektų kūrimui, be jų konkrečių klasių nurodymo.
- Konstruktorius (Builder): Atskiria sudėtingo objekto konstravimą nuo jo pateikimo, leidžiant kurti įvairius pateikimus naudojant tą patį konstravimo procesą.
- Prototipas (Prototype): Kuria naujus objektus kopijuodamas esamą egzempliorių.
- Singleton (Singleton): Užtikrina, kad klasė turėtų tik vieną egzempliorių ir suteikia globalų prieigos tašką prie šio egzemplioriaus.
Struktūriniai:
- Adapteris (Adapter): Paverčia vieno klases sąsają į kitą, kurią klientai tikisi.
- Tiltas (Bridge): Atskiria abstrakciją nuo jos įgyvendinimo, kad jie galėtų keistis nepriklausomai.
- Kompozitas (Composite): Sudeda objektus į medžio struktūras, kad atstovautų dalis-visas hierarchijas. Kompozitas leidžia klientams dirbti su atskirais objektais ir jų kompozicijomis vienodai.
- Dekoratorius (Decorator): Dinamiškai prideda naujas atsakomybes objektui. Tai lankstesnė alternatyva pogrupiams, skirtoms išplėsti funkcionalumą.
- Fasadas (Facade): Suteikia vieningą sąsają po subsystemo sąsajų rinkiniu. Fasadas apibrėžia aukšto lygio sąsają, kuri palengvina subsystemo naudojimą.
- Skraidantis svoris (Flyweight): Efektyviai dalijasi daug panašių objektų.
- Proksis (Proxy): Suteikia pakeičiantį objektą, kuris kontroliuoja prieigą prie kito objekto.
Elgesio:
- Atsakomybės grandinė (Chain of Responsibility): Leidžia perduoti užklausas eilės tvarka per apdorotojus. Kiekvienas apdorotojas nusprendžia, ar apdoroti užklausą, ar ją perduoti kitam.
- Komanda (Command): Inkapusliuoja užklausą kaip objektą, leidžiant parametrizuoti klientus įvairiomis užklausomis, eilėje juos sudėti, registruoti arba atšaukti.
- Iteratorius (Iterator): Suteikia būdą nuosekliai pasiekti sudėtinius objektus neskelbiant jų vidinės struktūros.
- Mediatorius (Mediator): Apibrėžia objektą, kuris inkapsuliuoja, kaip sąveikauja objektų rinkinys. Mediatorius skatina silpną ryšį, išvengiant tiesioginių nuorodų tarp objektų.
- Memento (Memento): Be pažeidžiant inkapsuliaciją, fiksuoja ir išorėje išsaugo objekto vidinę būseną, kad vėliau būtų galima ją atkurti.
- Stebėtojas (Observer): Apibrėžia "vienas su daug" priklausomybę tarp objektų, tokiu būdu, kad kai keičiasi vieno objekto būsena, visi priklausomi automatiškai informuojami ir atnaujinami.
- Būsenos (State): Leidžia objektui keisti savo elgesį, kai keičiasi jo vidinė būsena. Atrodo, tarsi objektas keistų savo klasę.
- Strategija (Strategy): Apibrėžia algoritmų šeimą, inkapsuliuoja kiekvieną algoritmą ir leidžia juos keisti tarpusavyje. Strategija leidžia algoritmui keistis nepriklausomai nuo klientų, kurie jį naudoja.
- Šablono metodas (Template Method): Apibrėžia algoritmo skeletą operacijoje, paliekant kai kuriuos žingsnius pogrupiams. Šablono metodas leidžia pogrupiams perrašyti kai kuriuos algoritmo žingsnius, nekeičiant jo struktūros.
- Lankytojas (Visitor): Atstovauja operaciją, kuri turi būti vykdoma objektų struktūros elementuose. Lankytojas leidžia apibrėžti naują operaciją be elementų klasių keitimo, kuriais jis veikia.