본문 바로가기

Design Pattern

Degine Pattern - StatePattern

# 네이버블로그에서 이사 (2012.11.07 게시물. http://blog.naver.com/rkdmfql1540) 


State패턴을 배우고 간단한 비디오관리 프로그래을 제작하면서 배운내용을 복습하였다.

1. 클래스 다이어그램


2. 설명

State 패턴은 그 이름처럼 오브젝트의 상태에 따라 처리를 변경할 경우에 이용합니다. 이 프로그램에서는 MemberType 추상클래스를 만들고 이 추상클래스를 상속받는 VIP, Ordinary클래스를 만들어 회원의 등급이 변할 때 setMemberType 메소드를 이용하여 회원 등급을 바꿀 수 있습니다. 또한 Gold등급이나 Silver등급을 새로 추가하여도 기존의 코드를 변경하지 않고 새로 생성할 클래스만 만들어 사용할 수 있습니다.


새로운 회원을 추가할 때 아래와 같이 코드를 생성합니다.

Member m = new Member(memberName, new Ordinary());

Member m = new Member(memberName, new VIP());

만약 새로운 Gold등급이 추가되어 회원등급을 변경 시에도 MemberType클래스를 상속 받는 Gold클래스를 만들고 m.setMemberType(new Gold())등과 같이 사용하면 Member클래스를 수정하지 않고 사용할 수 있습니다.

다음으로 VideoType 추상클래스는 MemberType 클래스와 마찬가지로 NewWork 클래스와 OldWork 클래스를 상속하여 비디오의 등급을 설정하거나 바꿀 때 사용합니다.


'Design Pattern' 카테고리의 다른 글

Design Pattern - 싱글톤 구현하기  (0) 2014.11.13