본문 바로가기

design_pattern

(2)
[디자인패턴] 스테이트 패턴 (State Pattern) 스테이트 패턴 (State Pattern) 이란 현재의 다양한 상태에 따라 동일한 입력이 들어와도 다른 결과를 낸다. 이때, 현재 시스템이 상태 변화에 독립적이도록 "상태"를 캡슐화하며 구체적 "상태"에서 행위를 수행하도록 위임하는 패턴이다. GoF 디자인 패턴 분류에 따르면, 클래스/객체 사이의 책임을 분배하여 결합도를 최소화하는 행위 패턴 (Behavior Pattern) 이다. UML 은 아래와 같이 구성이 된다. Context 클래스에서 자신의 현재 상태에 따라 로직을 구현하게 될 경우, 복잡한 조건문과 분기문들로 이해하기 어려운 코드가 작성될 것이다. 따라서, 새로운 상태가 추가될 때 알맞은 위치에 알맞은 코드를 작성하기 어려울 것이다. 모니터의 전원 버튼을 켜고/끄는 상태를 State Patt..
[디자인패턴] 데코레이터 패턴 (Decorator Pattern) 데코레이터 패턴 (Decorator Pattern) 이란 기본 기능 외에도 여러가지 추가 기능들이 있을 때, 다양한 조합을 동적으로 구현할 수 있는 패턴이다. GoF 디자인 패턴 분류에 따르면, 클래스/객체를 조합하여 더 큰 구조를 만드는 구조 패턴 (Structural Pattern) 의 한 종류로 분류가 된다. UML 은 아래와 같이 구성이 된다. 단순 상속을 하는 방법도 사용이 될 수 있겠지만, 그럴 경우 여러가지 조합을 가진 클래스를 구성 할때에 가지수가 굉장히 많아지게 되는 문제가 생긴다. 의자를 Decorator Pattern을 통해 만드는 예제로 데코레이터 패턴을 이해해보려고 한다. 아무 특색이 없는 기본 기능만을 가진 의자 OrdinaryChiar 클래스는 Component 에 해당하는 C..