티스토리 뷰

Java/Design Patterns

옵저버 패턴(Observer Pattern)

snail voyager 2020. 3. 15. 18:35
728x90
반응형

* 옵저버 패턴

한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고

자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의

 

* Java 내장 옵저버 패턴 작동 방식

Observer 객체 : java.util.Observer 구현

Subject 객체 : java.util.Obervable 상속

 

* java.util.Observable 단점

. 클래스이기 때문에 상속해서 사용해야한다. 그래서 재사용성에 제약.

. 인터페이스가 없기 때문에 Observer API와 잘 맞는 클래스를 직접 구현 불가.

. Observable 클래스의 핵심 메소를 외부에서 호출 불가. 서브클래스를 인스턴스 변수로 사용 불가.

-> 직접 API 구현해서 사용

 

* 디자인 원칙

1. 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리시킨다. (캡슐화)

2. 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다.

3. 상속보다는 구성을 활용한다.

4. 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야 한다.

728x90
반응형
반응형
300x250