Što je lanac odgovornosti?

Lanac odgovornosti (CoR) uključuje proces navođenja aktivnosti i odgovornosti svakog subjekta u objektno orijentiranom obrascu dizajna. Postoje dva osnovna elementa u objektno orijentiranom dizajnu; objekti naredbe i objekti obrade. Objekti naredbi generiraju naredbe objektima obrade, a objekti obrade biraju između naredbi kojima mogu rukovati i prosljeđuju ostale ostalima u lancu. Ovo je osnovni princip u objektno orijentiranom dizajnu, a u dizajnu je puno više fleksibilnosti, kao što je novo ograđivanje objekata na bilo kojem mjestu u dizajnu obrasca lanca odgovornosti.

Prednost objektno orijentiranog dizajna je u tome što komunikacija nije ograničena na pošiljatelja i primatelja jer postoji mnogo objekata za rukovanje naredbom pošiljatelja. Postoji lanac različitih objekata koji se poredaju za rukovanje naredbama, a ako se netko ne može nositi s tim onda ih može proslijediti sljedećem u lancu. Lanac odgovornosti se nastavlja sve dok jedan od objekata ne prihvati zapovijed.

Lanac odgovornosti mora biti fleksibilniji i podržavati dodavanje novih rukovatelja u lancu. Budući da svaki rukovatelj nije u stanju obaviti svaki zadatak, mora postojati skupina rukovatelja koji mogu raditi zajedno. Mogu postojati neki nedostaci lanca odgovornosti jer neke od naredbi ostaju neriješene, čak i na kraju lanca. Za rješavanje ovog problema, jedno rješenje je implementacija svih rukovatelja za sve moguće zahtjeve.

Mogu postojati neki problemi vezani uz prekinute karike u sustavu lanca odgovornosti. Ako programer zaboravi povezati naredbe onda bi se zahtjev mogao izgubiti. Predstavljanje zahtjeva je značajno jer se koristi u svim komponentama lanca odgovornosti. Još jedan nedostatak koji bi mogao biti u dizajnu CoR-a je da zbog nekih problema u obradi betona neki zahtjevi mogu završiti potpuno nerešeni na kraju lanca. Ali sve u svemu, lanac odgovornosti je dobar sustav za implementaciju ako je pažljivo osmišljen, uzimajući u obzir sve povezane aspekte.