본문 바로가기

[Terry] JAVA

[Design Patterns] Strategy Pattern 1


포스팅한다는 것이 다른 사람들에게 보여주기 위한 것일수도 있지만,
머 어차피 이 포스팅은 내가 내 만족을 위해서 내 멋대로 적는 것이니 절대로...경어는 안쓴다..ㅡㅡ;;

한동안 머리를 굴리지 않았더만 머리가 녹이 슨 것같다.
그래서 이전에 공부했던 디자인패턴 책을 보면서 포스팅을 시작해 보려 한다.
오늘 포스팅하려는 것은 Head First Design Pattern 의 제일 첫번째 Strategy Pattern에 대해서이다.
본격적으로 스트릿티지 패턴에 들어가기 전에 다음 클래스 다이어 그램을 보자.

사용자 삽입 이미지

위의 다이어 그램은 간단한 오리 시뮬레이션 프로그램이다.
소스 코드는 첨부 파일을 참조해 주길 바란다.

위의 다이어 그램에 대해 간단히 설명하자면 다음과 같다.
우선 오리의 특성(quack, swimming, shape)을 가진 super class를 만든다.
(오리의 모양은 오리마다 다르므로 추상메소드로 선언한다.)
그리고 물오리, 붉은머리 오리등 오리별로 Duck클래스를 상속받아 개개의 개체를 구현한다.

시뮬레이션을 원하는 오리가 있다면, 시뮬레이션 프로그램에서 구현한다.
(구현한다는 말은 new 연산자를  사용해서 객체를 생성한다는 의미로 보면 된다.)

위의 다이어 그램을 이해하고 문제점을 찾아내는 것이 이번 패턴 공부의 시작이다.
다음 포스팅때가지 각자가 한번 생각해 보길 바란다.