[ 디자인 패턴: 행동 ] (8) 전략 (Strategy)
·
개발
전략 패턴 : 런타임에 알고리즘 전략을 선택하여 객체의 동작을 실시간으로 바꿀 수 있게 해주는 디자인 패턴 전략 (Strategy) : 특정한 목표를 수행하기 위한 행동 계획(알고리즘, 기능, 동작 등) 전략 패턴은 어떤 일을 수행하는 알고리즘이 여러가지 일 때, 동작들을 미리 전략으로 정의한다.이때, 전략을 쉽게 교체할 수 있도록 구현한다.따라서, 알고리즘이 빈번하게 교체되는 경우에 적합하다! 전략 패턴의 구조는 위와 같다.Context 객체가 알고리즘을 실행해야 할 때마다 해당 알고리즘을 구현하는 전략 객체의 메서드를 호출한다. 전략 패턴은 객체지향 프로그래밍을 굉장히 잘 활용한 디자인 패턴이라고 볼 수 있다.동일 계열의 알고리즘군을 정의각각의 알고리즘을 캡슐화각각의 알고리즘의 상호 교환이 가능클..
[ 디자인 패턴: 행동 ] (7) 상태 (State)
·
개발
상태 패턴 : 객체의 상태에 따라 행위가 달라지는 상황에서 상태를 조건문으로 검사해서 행위를 결정하는 대신, 상태를 객체화하여 상태가 행동을 취하도록 위임하는 디자인 패턴 객체지향 프로그래밍에서 클래스는 사물만 표현할 수 있는 것이 아니다.경우에 따라 행위/동작을 클래스로 표현할 수 있다. 따라서, 상태 패턴은 상태를 클래스로 구현함으로써 상태의 변화를 표현한다.상태에 따른 객체의 행위를 분리할 수 있으며, 새로운 행위를 추가하더라도 다른 행위에 영향을 미치지 않는다. 여기서 주의할 점은 대부분의 상황에서 상태 클래스는 싱글톤으로 관리되어야 한다는 것이다.상태는 객체의 현재 상태를 나타내기 때문에, 대부분의 상황에서 고유하게 존재해야 한다.  상태 패턴을 구현한 클래스 구조는 위와 같다. 예제 우리가 흔..