[Design Pattern] Observer
옵저버 패턴은 객체의 상태 변화와 관련이 있는 디자인 패턴이다.
디자인 패턴은 효율적인 소프트웨어 설계를 위한 일종의 설계 기법으로, GoF(Gang of Four)가 쓴 책 “디자인 패턴”을 통해 구체적으로 처음 제시되었다.
특정한 알고리즘이 아니라, 소프트웨어 개발 시 자주 발생하는 반복적인 문제에 대한 해결 방법론이다.
디자인 패턴을 활용하여 코드의 복잡도를 줄이고,
코드의 재사용성, 유지보수성, 호환성을 보장함으로써 프로그래밍 생산성을 높일 수 있다.
대표적인 유형으로는 GoF 외에도 MVC(Model View Controller) 등이 있다.
여기서는 GoF 디자인 패턴을 정리해보고자 한다.
GoF는 디자인 패턴을 수행 목적에 따라 생성 패턴
, 구조 패턴
, 행위 패턴
으로 분류한다.
객체의 생성 방식을 정해준다. 캡슐화와 관련이 있다.
객체를 조직화한다. 클래스나 객체의 구성과 관련이 있다.
클래스나 객체 간의 상호작용에 관여한다.
디자인 패턴은 다루는 영역, 즉 적용 범위에 따라 클래스 패턴
, 객체 패턴
으로 나눌 수도 있다.
클래스 간의 관계에 관여하며, 보통 서브클래스 상속을 통해 정의한다. 정적(static)인 패턴이다.
(EX. Factory Method, Adapter, Template Method, Interpreter)
객체 간의 관계에 관여한다. 다른 객체에게 기능을 위임하는 것으로 정의할 수 있다. 프로그램 실행 중에 생성되어 동적(dynamic)이고 유연하다.
옵저버 패턴은 객체의 상태 변화와 관련이 있는 디자인 패턴이다.
싱글턴 패턴은 객체 인스턴스를 한 번만 생성하는 디자인 패턴이다.
팩토리 메서드 패턴은 객체지향 디자인 패턴이다. 객체지향 참고: Object Orient Basics