State pattern

State Pattern (상태패턴)

객체의 다양한 상태를 객체화합니다.

객체 내부의 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있습니다
마치 객체의 class가 바뀌는 것과 같은 결과를 얻을 수 있습니다.

State Pattern 의 class diagram

먼저 객체의 여러 상태들에 대한 공통 인터페이스를 정의한다. 여기서는 State interface가 그 역할을 한다.

Context는 객체의 상태(State 객체)를 바꾸어가면서 다른 행동을 할 수 있는 클래스로, 여러개의 객체 상태를 가질 수 있다. request() method가 호출되면 그 작업은 상태 객체에게 위임(delegation)된다.

State 인터페이스를 구현한 실제 객체의 상태를 나타내는 Concrete State는 Context로 부터 요청된 작업을 수행한다 (handle() method )

Read more

Decorator pattern

Decorator Pattern은 객체에서 추가적인 요건을 동적으로 추가할 수 있다.

1
2
Target target = new concreteTarget();
target = new Condition(target); //마치 wrapper class처럼 감싸서 사용한다.
  • Decorator 의 super class는 장식할 객체의 super class와 같다.
  • Decorator 구현체는 Decorator 추상 class를 상속하여 기능을 추가할 수 있다.
  • 한 객체를 여러 개의 Decorator 구현체로 감싸서 기능을 추가할 수 있다.
  • Decorator는 장식할 객체에 어떤 행동을 위임하는 것외에도 추가적인 작업을 수행할 수 있다.
Read more

Observer pattern

Observer Pattern은 한 객체(Subject)의 상태가 바뀌면 그 객체에 의존하는 다른 객체(Observer)에게 알려져, 자동으로 내용이 갱신되는 일대다 (One-To-Many ,One Subject to Many Observer ) 의존성을 정의한다.

Read more

Template method pattern

Template Method Pattern이란?
SuperClass에서 수행할 알고리즘의 각 단계를 미리 정의해두고 , 그 중 하나 이상의 단계를 SubClass에서 구현하는 디자인 패턴

Read more