Vad är en ansvarskedja?

Ansvarskedjan (COR) innebär processen att ange aktiviteter och ansvar för varje enhet i det objektorienterade designmönstret. Det finns två grundläggande element i en objektorienterad design; kommandoobjekt och bearbetning av objekt. Kommandoobjekten genererar kommandona till bearbetningsobjekten och behandlingsobjekten väljer från de kommandon som de kan hantera och skicka resten till de andra i kedjan. Detta är den grundläggande principen i objektorienterad design, och det finns mycket mer flexibilitet i designen, till exempel den nya inneslutningen av objekten på vilken plats som helst i designmönstret för kedjan av ansvar.

Fördelen bakom den objektorienterade designen är att kommunikationen inte är begränsad till avsändaren och mottagaren eftersom det finns många objekt där för att hantera avsändarens kommando. Det finns en kedja med olika objekt som ställer upp för att hantera kommandona, och om man inte kan hantera den kan den vidarebefordra den tillNästa i kedjan. Ansvareskedjan fortsätter att fortsätta tills ett av objekten accepterar kommandot.

Ansvareskedjan måste vara mer flexibel och stödja tillägget av nya hanterare i kedjan. Eftersom varje hanterare inte kan göra varje uppgift måste det finnas en grupp av hanterare som kan fungera kollektivt. Det kan finnas några nackdelar med ansvarskedjan eftersom några av kommandona förblir olösta, även i slutet av kedjan. För att ta itu med detta problem är en lösning att implementera alla hanterare för alla möjliga förfrågningar.

Det kan finnas några problem relaterade till de trasiga länkarna i kedjan av ansvarssystemet. Om programmeraren glömmer att länka kommandona kan begäran gå vilse. Begärningsrepresentationen är betydande eftersom den används i alla komponenter i ansvarskedjan. En annan brist thaT kan vara i utformningen av COR är att på grund av vissa problem i betonghanteraren kan vissa förfrågningar hamna helt oadresserade i slutet av kedjan. Men allt i allt är ansvarskedjan ett bra system att implementera om det noggrant har utformats med tanke på alla relaterade aspekter.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?