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

[소프트웨어 패턴 C#] 21.감시자 패턴(Observer Pattern)

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

21. 감시자 패턴(Observer Pattern)

 

 감시자 패턴은 하나의 개체가 여러 개체의 상태의 변화를 감지하는 역할을 담당하게 하는 패턴입니다. 특정 개체의 상태가 바뀌게 되었을 때 이를 반영해야 하는 개체가 여러 개가 있을 수 있습니다. 이 경우에 다른 개체의 상태가 바뀌었을 때 자신도 변화를 갖어야 하기 때문에 결합도가 강하여 유연하게 프로그래밍 하기 힘들어집니다. 이 경우에 감시자 패턴을 사용을 하면 결합도를 느슨하게 하여 유연한 프로그래밍을 할 수 있게 해 줍니다.

 

 감시자 패턴에서는 감시자는 다른 개체의 상태의 변화를 통보를 받는 역할과 이 변화를 구독하기를 원하는 개체에게 알려주는 역할을 합니다. 이를 위해 감시자 개체는 상태의 변화가 발생하는 주 개체에게 상태 변화에 대한 통보를 해 줄 것을 요청하게 됩니다. 이를 구독이라 얘기합니다. 그리고, 주 개체의 상태의 변화가 발생하면 구독 요청한 감시자들에게 이를 알려주게 됩니다. 이를 게시라고 얘기를 합니다.

 

 감시자 패턴은 상태의 변화가 발생하는 개체에 따라 영향을 받는 개체가 다양할 경우에 상태의 변화를 감지하는 역할을 감시자에게 집중시키고 있습니다. 만약, 감시자가 없다고 하더라도 의존 관계가 단순한 경우에는 굳이 감시자 패턴을 사용할 필요는 없을 것입니다. 하지만, 의존 관계가 복잡하거나 앞으로 복잡해 질 수 있을 경우에 감시자 패턴을 사용하여 유연성을 높일 수 있을 것입니다.

 

감시자 패턴(Observer Pattern)


Observer.zip



2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 감시자 패턴(Observer Pattern) - 개요, 시나리오


2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 감시자 패턴(Observer Pattern) - 설계(Design)


2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 감시자 패턴(Observer Pattern) - 구현


반응형