목록상태패턴 (2)
BOID
안녕하세요, HoonIOS입니다. :) 저번에는 간단하게 상태패턴에 대해 알아봤는데요, 이번에는 구조에 대해 알아보겠습니다. 상태패턴 구조 콘텍스트 - 상태에 대한 참조를 저장하고 모든 상태별 작업을 하는 곳 - 상태 인터페이스를 통해 상테 객체와 통신하며 새로운 상태 객체를 전달하기 위한 setter을 호출 상태 - 인터페이스로 상태별 메서드를 구현 - 이 메서드는 모든 상태에 대해 유효한 메서드이어야 하는데 그 이유는 상태에 따라 호출될 일이 없는 메서드들를 인터페이스로 구분하면 사이드 이펙트가 나올 가능성이 있기 때문이다. 구상 상태 - 상태별 클래스로 상태 인터페이스에 따른 메서드들을 자체적인 구현을 제공합니다. - 여러 상태에서 유사한 코드의 중복을 피하기 위해 어떤 공통 행동을 캡슐화하는 중간..
안녕하세요, HoonIOS입니다. :) 이번에는 패턴중에 하나인 상태패턴 공부한것에 대해 정리 할려고 합니다. 상태패턴의 정의에 대해 먼저 살펴보겠습니다. 상태패턴 정의 상태 패턴은 객체의 내부 상태가 변경 될때 해당 객체가 그 상태에 알맞는 행동을 할수 있도록 변경해주는게 행동 디자인 패턴입니다. 예를들어 어느 한 책을 출판한다고 했을때 출판하기 까지 초안, 검토, 출판 이렇게 세가지 형태로 크게 나눈다고 한다고 하면 각 상태를 객체에서 상태에 따라 분류하여 동작하도록 처리해주면 됩니다. 즉 아래와 같은 방식을 살펴 보겠습니다. 상태 패턴 방식 위 코드는 객체 내에서 자체적으로 상태에 따라 코드를 구현하는 대신 현재 상태를 나타내는 상태 객체중 하나에 대한 참조를 저장하고 모든 상태에 관련된 작업을 D..