예제

A collection of 8 posts

Decorator Pattern

Decorator Pattern 예제

데코레이터 패턴 레포트 상세 내용 게임게발을하고 있습니다. 각 케릭터는 ‘인간’이라는 한 종족으로시작을 하게 되며 한 종족은 ‘전사’, ‘마법사’, ‘도둑’세 가지의 직업을 가지게 됩니다. 각 케릭터가 착용하게 되는 아이템은 ‘무기’, ‘방어구’를 착용하게 됩니다. 그리고 모든 직업은 공통적으로 HP, MP라는 속성값을 가지게 됩니다.

design pattern

Observe Pattern 예제(끝)

Auctioneer는 Subjct를 대신했고 Bidder는 Observer 인터페이스를 대신하도록 만들었다. 그리고 각각 ConcereAuctioneer와 ConcreteBidder 클래스를 작성하여 인터페이스를 통해 접근하도록 했다. 그리고 test 클래스를 작성하기 시작했다. 먼저 경매 물품이 나오고 (경매 시작 가격이 있을 것이라 생각했다.) 그다음 경매자들이 그 물품의 구독자(observer)로 등록이 되며(여기서는 구독자

design pattern

Observer Pattern 예제

Obsever Pattern은 1대 다 관계를 정의합니다. 따라서 한 객체의 상태가 바뀌면 다른 것들이 자동적으로 정보를 업데이트 받습니다. Participant Correspondence: auctioneer가 Subject에 해당합니다. Observer들은 그에게 등록을 해야하기 떄문에 당연히 그는 observer들을 알고 있습니다. 현재 경매가(current bid)는 ConcreteSubject에 해당합니다. Observer들은 이것의 상태에 관심이 있습니다.

design pattern

Strategy Pattern 예제(끝)

Worker List Manager의 class diagram에 추가 사항. 위에서 생각해 보았던 문제가 들어맞았다… 필요없이 모양에 끼워 맞추려다가 오히려 복잡해지기만 했다. 그래서 과감히 필요없는 부분은 제거했다. 보라색 부분에 있던 sub class들을 몽땅 없애버렸다. WorkerListManager를 사용해서도 충분히 지시된 사항들이 가능하기 때문이다. 나중에 필요하게 되면 다시 상속을

design pattern

Strategy Pattern 예제(계속)

Worker List Manager의 class diagram 에서는 Id로 list를 관리하는 class밖에 없었기 때문에.. 기본적으로 setter에서 id를 가지고 sorting을 하는 QuicjSorting이나 InsertionSorting을 사용하였습니다. 하지만 이번에는 Name으로 list를 관리하는 class가 추가 되었습니다. 이렇게 추가 되면서 이제는 setter에서 id를 가지고 Sorting을 하는 알고리즘을 injection하는 것이 아니라.. name을 가지고

design pattern

Strategy Pattern 예제(계속)

먼저 Worker들을 세 종류로 나누었고 바뀌는 getSalary와 display를 각각의 class에서 구현하도록 Worker class를 abstract로 선언했습니다. 그리고 녹색 부분이 Strategy Pattern 을 적용한 부분입니다. 마지막으로 최종적으로 WorkerListManager를 상속 받은 IdListManager에서 Id를 가지고 정렬하도록 sortingBehavior를 때에 따라 바꿔가며 사용할 것입니다.

design pattern

Strategy Pattern 예제

Strategy Pattern을 이용한 사원 List 관리 사원의 List를 관리하는 프로그램을 작성합니다. 기존의 legacy system에서 사용하던 사원의 data는 txt파일 형태로 존재 합니다. 예를 들어 모든 data는 id, name, salary, commission, hourOfWorked, payPerHour 순으로 입력이 되어 있으며 사원의 종류에 따라 어떤 직원은 salary만 기입되어 있는 data도

You've successfully subscribed to Whiteship!
Could not sign up! Invalid sign up link.