[DesignPattern] StatePattern, 상태패턴

LimJaeJun·2023년 8월 10일

DesignPattern

목록 보기
12/15

상태패턴 - StatePattern

🔥 상태패턴이란?

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

상태 패턴은 객체의 상태에 따라서 행동을 분리하여 캡슐화합니다.
객체의 내부 상태 변화에 따라 해당 상태에 맞는 동작을 실행하며, 상태 변경 시에 객체의 클래스를 변경하지 않고 새로운 상태 클래스를 추가함으로써 확장성유지보수성을 높일 수 있습니다.

📄 클래스 다이어그램

상태패턴과 전략패턴

전략패턴은 처음 배웠던 디자인패턴이다. (기억이 나지 않는다면 [링크])

특성상태 패턴전략 패턴
목적객체의 내부 상태에 따른 동작을 관리 및 캡슐화다양한 알고리즘을 동적으로 교체 가능하게 함
구조상태 객체와 컨텍스트 객체 사이의 관계 구성전략 객체와 컨텍스트 객체 사이의 관계 구성
변경 용이성내부 상태 변경 시, 해당 상태 클래스만 변경알고리즘 변경 시, 새로운 전략 클래스 추가
실행 시점객체의 내부 상태 변화 시실행 시에 적절한 전략 선택
응용 예시주문 처리, 자판기 등정렬 알고리즘, 데이터 변환 등
주요 이점유한한 상태 관리, 코드 중복 감소알고리즘 교체 용이성, 코드 재사용
주요 한계상태가 많아질수록 클래스 수가 증가많은 전략이 추가될 경우 클래스 수가 증가

📚 참고문헌

  • HeadFirst DesignPattern - 한빛미디어
profile
Dreams Come True

0개의 댓글