프로그래밍 기술/Escort GoF의 디자인 패턴 C#

[소프트웨어 설계 패턴 C#] 책임 연쇄 패턴(Chain of Responsibility Pattern)

언제나휴일 2016. 4. 17. 13:18
반응형

15. 책임 연쇄 패턴(Chain of Responsibility Pattern)

 

 여러 형식 개체들로 구성된 프로그램을 작성하다 보면 메시지를 보내는 곳에서 이를 받아 처리해야 할 개체의 위치를 파악하기가 어려운 경우가 발생합니다. 만약, 메시지를 받아 처리해야 할 개체들을 관리하는 집합체가 있거나 계층화되어 있다면 책임 연쇄 패턴을 통해 효과적으로 메시지를 전달할 수 있습니다.

 

 책임 연쇄 패턴에서는 메시지 송신자는 이를 받아 처리해야 할 개체가 속한 집합체에 메시지를 전달하면 집합체 내에서 수신해야 할 개체에게 메시지를 전달하여 처리를 하게 하는 것입니다. 특정 개체에게 메시지가 전달되면 해당 메시지를 자신이 처리를 할 것인지를 판단을 하게 됩니다. 만약, 자신이 처리를 해야 한다면 이에 대한 처리를 하겠죠. 그리고, 해당 메시지를 처리를 해야 할 다른 개체가 존재할 수 있다면 이를 다음 개체에게 전달을 하게 됩니다. 경우에 따라서는 메시지를 변형하여 전달할 수도 있고 버릴 수도 있을 것입니다.

 , 책임 연쇄 패턴에서는 메시지 송신부와 메시지 수신부를 분리되어 있을 때 효과적입니다. 송신부에서는 수신부에 전달하면 수신부에서 메시지를 전달받은 개체는 자신과 연관되는 다른 개체들에게 이 메시지를 전달을 하는 형태로 실제 처리할 개체까지 전달을 하는 것입니다. 실제, 윈도우즈 프로그램에서 메시지를 처리하는 내부 원리도 이와 흡사합니다.

 



ChainofResponsibility.zip



2016/04/27 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) - 개요, 시나리오


2016/04/27 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) - 설계(Design)


2016/04/27 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) - 구현



반응형