본문 바로가기

Design Pattern

(2)
[Design Pattern] 02. Observer Pattern 2. Observer Pattern 옵저버 패턴은 어떤 객체의 상태가 바뀌었을 때, 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식의 디자인 패턴을 말합니다. 이 패턴은 발행-구독(pub/sub) 모델로 불리기도 하며 일대다 (one-to-many) 의존성을 가지고 있습니다. 어떤 경우에는 주제이면서 옵저버의 역할을 할 수도 있습니다. 참고로, Subject 혹은 Observable 객체는 동일한 인터페이스를 이용해 옵저버에게 연락합니다. 아래는 각각 Subject 객체를 이용한 옵저버 패턴 구조와 Observable 객체를 이용한 패턴 구조를 보여드리겠습니다. 자바 내장 옵저버 패턴 사용 두 가지 구조의 차이점을 알아보면, 1. Observable 인터페이스가 아닌 클래스..
[Design Pattern] 01. Strategy Pattern 1. Strategy Pattern 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말합니다. 우선, 클래스에서 변화는 부분과 변하지 않는 부분을 분리해내야 합니다. 그 다음 아래처럼 변하는 부분(Flyable, Quackable)을 인터페이스로 분리해주면 됩니다. 분리된 인터페이스를 구현하는 객체 클래스를 만들어, 행동 유연하게 수정할 수 있습니다. 위 같은 구조를 짠 뒤에는, fly와 quack의 행동을 Duck 클래스 내에서 정의한 메소드를 써서 구현하지 않고 행동 클래스의 인스턴스를 생성해주면 됩니다. 그..