Whiteship's Note


State Pattern 예제

Design Pattern : 2006.12.10 10:42


문제 : 2) [30점]  State pattern에서 공짜 알맹이 당첨 기능을 추가 하고 반응이 좋아 다른 한 가지 변경을 다하고자 한다. 현제의 기계에서는 한 번에 하나의 동전만 넣을 수 있다. 다른 뽑기 기계에서와 같이 한꺼번에 2개, 3개, 혹은 원하면 더 많은 동전을 넣을 수 있도록 하는 기능을 추가 해 달라는 요청이다.
   a. [10점] 확장된 state diagram을 그려라.
   b. [10점] State Pattern을 적용하지 않은 경우를 구현하라.
   c. [10점] State Pattern을 적용한 시스템을 구현하고, 패턴을 적용하지 않은경우와 비교해서 확장이 얼마나 쉬워 졌는지 설명하라.

A.
사용자 삽입 이미지

B. 각각의 상태를 flag로 두고 각 메소드 안에서 if-else문을 엄청나게 사용하여 구현을 해보라는 것인 것 같군요.

C. 새로운 상태(동전이 여러개인 상태)를 동전 있슴 State의 하위 클래스로 상속을 사용한 뒤 필요한 메소드를 오버라이딩 하면 될 것 같습니다.

자~ 이제 코딩하자 기선아.

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

Singletons and lazy loading  (2) 2007.01.27
객체지향 디자인 원칙  (2) 2006.12.11
Losely Coupled를 활용하라.  (0) 2006.12.11
상속보다는 구성을 활용한다.  (0) 2006.12.11
바뀌는 부분을 캡슐화 한다.  (0) 2006.12.11
State Pattern 예제  (2) 2006.12.10
캡슐화  (0) 2006.12.09
H.F. Design Pattern 트집잡기  (4) 2006.12.09
Design Pattern 기말고사  (0) 2006.12.08
Template Method Pattern을 사용하는 QuickSorting  (0) 2006.12.08
Simple Factory  (4) 2006.11.13
top

  1. zerry82 2006.12.10 12:54 PERM. MOD/DEL REPLY

    재밌는 시험이다..!!!

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2006.12.10 22:57 신고 PERM MOD/DEL

    재밌긴 한데 시간을 많이 잡아먹는거~

Write a comment.


Design Pattern 기말고사

Design Pattern : 2006.12.08 20:36


이번 시험도 중간고사와 마찬가지로 Taking Home 방식입니다. 이런 시험을 한 학기에 두번이나 치르게 되다니.. 재미는 있지만 범위가 넓다보니 약~간 힘들어 지려고 하네요.

시험범위는 1장~11장(Strategy, Observer, Decorator, Factory, Singleton, Command, Adapter, Facade, Template, Iterator, Composit, State, Proxy)이고 현재까지 세 문제를 출제하셨습니다. 출제가 완료됐습니다.

1. 캡슐화에 대한 문제.
(완료)
2. State Pattern(10장)의 뽑기 기계 응용한 문제.(완료)
3. Quick Sorting에서 Pivot 구하는 부분을 탬플릿 메소드 패턴을 적용하여 구현하시오.(완료)
4. 디자인 원칙에 관한 문제.
5. 책에서 잘못 된 부분을 찾아 고치시오.(완료)

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

상속보다는 구성을 활용한다.  (0) 2006.12.11
바뀌는 부분을 캡슐화 한다.  (0) 2006.12.11
State Pattern 예제  (2) 2006.12.10
캡슐화  (0) 2006.12.09
H.F. Design Pattern 트집잡기  (4) 2006.12.09
Design Pattern 기말고사  (0) 2006.12.08
Template Method Pattern을 사용하는 QuickSorting  (0) 2006.12.08
Simple Factory  (4) 2006.11.13
Principle of Least Knowledge  (4) 2006.11.11
Adapter Pattern  (0) 2006.11.11
엔터프라이즈 컴퓨팅 중간고사 5)  (0) 2006.10.23
top

Write a comment.


Template Method Pattern을 사용하는 QuickSorting

Design Pattern : 2006.12.08 20:33


문제는 다음과 같습니다.

Test 클래스를 먼저 작성했습니다.

그리고 탬플릿 역활을 하는 QuickSorting 메소드를 작성했습니다.
여기서 getPivoit 메소드가 비어있는 탬플릿이 됩니다. 이 것을 구현하는 하위 클래스들은 pivot을 구하는 방법에 따라 getPivot 메소드를 다르게 구현할 것입니다.

Pivot은 다음과 같이 세가지 방법으로 구현하라고 하였습니다.
   a. 가장 오른쪽 인자를 Pivot으로 하는 경우.
   b. 가장 오른쪽 인자를 Pivot으로 하는 경우.
   c. Random하게 Pivot을 선택하는 경우.

간단하게 구현과 테스트가 가능합니다.


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

바뀌는 부분을 캡슐화 한다.  (0) 2006.12.11
State Pattern 예제  (2) 2006.12.10
캡슐화  (0) 2006.12.09
H.F. Design Pattern 트집잡기  (4) 2006.12.09
Design Pattern 기말고사  (0) 2006.12.08
Template Method Pattern을 사용하는 QuickSorting  (0) 2006.12.08
Simple Factory  (4) 2006.11.13
Principle of Least Knowledge  (4) 2006.11.11
Adapter Pattern  (0) 2006.11.11
엔터프라이즈 컴퓨팅 중간고사 5)  (0) 2006.10.23
엔터프라이즈 컴퓨팅 중간고사 2), 3), 4)  (0) 2006.10.23
top

Write a comment.