본문 바로가기

Software Design Pattern

책임의 전가 패턴

책임의 전가 패턴


이걸 이용해서 로거를 만들어 보자


WriteMessage(Info/Debug/Error)

Logger -> Console -> Mail -> File

자기 책임인지 확인하고 다음으로 전달


책임의 전가(Chain of Responsibility)

: 이벤트 발생시 처리되지 않을 경우 다음객체에게 전달하는 패턴

=> 처리할 수 있을 때까지 고리에 따라 이벤트를 전달한다.


이벤트와 이벤트 처리 객체의 결합도를 줄일 수 있다.


자바의 Logger에서도 이렇게 구현됨


또 다른 사용 예

OS X 계열의 GUI 라이브러리(코코아, 코코아 터치)

- Touch 이벤트(Responder Chain)

: MyUIView -> UIView -> MyViewController -> UIViewController -> AppDelegate


MFC의 메뉴 이벤트

: View -> Document -> Frame -> App


이벤트 처리 관련 GoF 디자인 패턴 2가지

- 관찰자 패턴 : 등록된 객체에게 이벤트를 전파

- 책임의 전가 : 자신의 책임이 아니면 다음 객체에게 전달



'Software Design Pattern' 카테고리의 다른 글

브릿지(Bridge) 패턴  (0) 2017.12.07
Facade(퍼사드) 패턴  (0) 2017.12.06
Cloneable  (0) 2017.12.06
추상 팩토리 패턴  (0) 2017.12.05
데코레이터 패턴  (0) 2017.12.04