Uzorci ponašanja
U softverskom inženjerstvu uzorci ponašanja su projektni uzorci koji pokušavaju da identifikuju česte obrasce koji se javljaju u komunikaciji između objekata i da ih pretvore u projektne uzorke. Ovim se postiže fleksibilnost u sprovođenju komunikacije među objektima.
Primeri uzoraka ponašanja su:
- Posmatrač: Definiše zavisnost 1:N između objekata, takvu da kada jedan objekat promeni stanje svi zavisni objekti budu obavešteni i automatski se ažuriraju.
- Iterator: Obezbeđuje sekvencijalni pristup elementima nekog agregatnog objekta bez eksponiranja unutrašnje strukture tog agregata.
- Strategija: Definiše familiju algoritama, enkapsulirajući svaki i čini ih međusobno zamenjivim. Strategija omogućava jednostavnu promena algoritma u vreme izvršenja.
- Šablonski metod: Definiše kostur nekog operacionog algoritma, delegirajući pojedine korake potklasama. Šablonski metod omogućava potklasama da redefinišu određene korake algoritma bez izmene njegove strukture.
- Stanje: Omogućava objektu da menja svoje ponašanje kada se menja njegovo unutrašnje stanje. Izgleda kada da objekat menja svoju klasu.
- Podsetnik: Bez narušavanja enkapsulacije snima i eksternalizuje stanje nekog objekat, tako da omogući da se objekat kasnije može vratiti u dato stanje.
- Posrednik: Definiše objekat koji enkapsulira kako skup objekata interaguje. Posrednik omogućava slabo sprezanje objekata što postiže čuvanjem objekata koji se međusobno referišu, a to dozvoljava da im se interakcija menja nezavisno.
- Komanda: Enkapsulira zahtev u jedan objekat, omogućavajući da se klijenti parametrizuju različitim zahtevima, da se zahtevi isporučuju kroz red čekanja, da se pravi dnevnik zahteva i da se efekti izvršenog zahteva ponište.
- Lanac odgovornosti: Izbegava neposredno vezivanje pošiljaoca zahteva sa primaocem zahteva, dajući šansu većem broju objekata da obrade zahtev. Lanac odgovornosti povezuje objekte primaoce zahteva u lanac i prosleđuje zahtev niz lanac dok ga neki objekat ne obradi.
- Posetilac: Reprezentuje jednu operaciju koju treba primeniti na elemente jedne objektne strukture. Posetilac omogućava definisanje nove operacije bez izmene klasa elemenata nad kojim se izvršava.
- Interpreter: Za dati jezik definiše reprezentaciju njegove gramatike, kao i interpeter koji koristi tu reprezentaciju da interpretira iskaze jezika.