Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed
文書の過去の版を表示しています。
Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed
the Definition of State Pattern
스테이트 패턴의 정의는 다음과 같습니다.
스테이트 패턴을 이용하면 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있습니다. 마치 객체의 클래스가 바뀌는 것과 같은 결 과를 얻을 수 있습니다.
위에 있는 정의의 첫 번째 부분은 금방 이해가 되죠? 이 패턴에서는 상태를 별도의 클래스로 캡슐화한 다음 현재 상태 를 나타내는 객체에게 행동을 위임하기 때문에, 내부 상태가 바뀜에 따라서 행동이 달라지게 된다는 것을 알 수 있습니 다.
두번째 부분은 어떻게 해석할 수 있을까요? “클래스가 바뀌는 것 같은”결과를 얻는다는 것이 무엇을 뜻할까요? 클라 이언트 입장에서 생각해 보죠. 만약 클라이언트에서 사용하는 객체의 행동이 완전히 달라질 수 있다면 마치 그 객체가 다른 클래스로부터 만들어진 객체처럼 느껴지겠죠?
자, 그럼 스테이트 패턴 클래스 다이어그램을 살펴볼까요?