2024/05/04 2

[디자인패턴] 행동 패턴 - 상태(State) 패턴

상태 (State) 패턴이란State 패턴은 행동 패턴 중 하나로 내부 상태가 변경될 때 객체의 행동을 교체한다. 객체가 상태(값)을 변경하여, 행동의 변화를 유발함으로서 클래스 자체가 변경된 것 처럼도 보일 수 있다.  등장 배경[초안, 검토, 출판본]의 상태를 가진 문서 객체가 있다고 가정할 때, 발행(publish)라는 메서드는 각 상태(State) 마다 다르게 작동할 것이다. 초안: 검토 상태로 변경 검토: 공개 상태로 변경 / 관리자만 가능출판본: 이미 발행되었기에, 아무것도 하지 않음  이 처럼 유한한 범위의 상태를 가지고 있는 프로그램에 상태 변화에 따라 다르게 행동할 수 있도록 설계 되는 것이런 변경(transition)이라고 불리는 원칙은 유한한 범위이고, 미리 결정 되어야 한다.  예시..

[디자인패턴] 행동 패턴 - 전략(Strategy) 패턴

전략 (Strategy) 패턴이란행동 패턴 방법 중 하나로 동일한 레벨의 다양한 알고리즘을 정의 및 캡슐화 하고, 런타임시 동적으로 해당 알고리즘을 선택할 수 있게 하는 디자인 패턴이다. 이로서, 복잡한 알고리즘 내용을 비즈니스 로직에서 분리 하여 감출 수 있고, 클라이언트는 런타임 중 자유롭게 알고리즘을 수행하고 변경 할 수 있다. 등장 배경 예시로여행자들이 목적지 까지 가기 위한, 다양한 방법(대중교통, 차량 등등)에 대해 네비게이션을 통해 볼 수 있다고 가정여행자들은 원하는 방법을 선택할 때 마다, 해당 방법으로 목적지 까지 가는 방법을 보여 줄 수 있다.  예시 구조1. 목적지 까지 가기 위한 전략(알고리즘, Strategy) 들은 다 캡슐화를 한다.ex. RouteStrategy 인터페이스를 상..