본문 바로가기

프로그래밍

내 입맛대로 간단하게 정리한 디자인 패턴 - 옵저버 패턴(Observer Pattern)

참고
객체 = 인스턴스
class = public class로 만들어 진 class

 



정의 : 특정 인터페이스를 구현한 것들을 하나의 List에 모아서 일괄적으로 같은 메소드를 호출하게 하는 것

 


List에서 객체를 빼면 unregister 혹은 unsubscribe , 이 List에 객체를 추가하면 register 혹은 subscribe라고 한다.
List 안에 들어가는 것들을 옵저버(=관찰자)라고 부르며, 일괄적으로 같은 메소드를 호출하는 것을 통지한다고 부른다.

로봇을 예로 들어보자.
Robot이라는 인터페이스에 비상정지() 라는 기능이 있다.
따라서 로봇의 팔, 다리, 몸통, 머리가 Robot이라는 인터페이스를 구현한다는 것은 비상정지가 구현되어 있다는 것이다.
로봇의 팔, 다리, 몸통, 머리 class들이 모두 하나의 List에 등록되어 있다면 비상정지를 할 때 일괄적으로 멈추게 될 것이다.
비상정지할 떄 로봇 머리 부분의 부저음이 필요 없는 상황이라면, 로봇 머리 부분만 이 List에서 unregister하면 된다.