본문 바로가기

Design Patterns

Template Method Pattern ①

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
하하.. 오랜만에 DP 공부를 다시 합니다.. 왜냐... -_-;; 학교에서 공부를 하고 있단 말이죠.. 지금 예습을 한 패턴이 몇개 안됩니다.. 지금 1챕터가 끝났는데 예습은 7챕터까지 밖에 안해놨으니.. 빨리 끝까지 가야겠습니다. 이번에 배울 패턴은 템플릿 메소드 패턴입니다. 흠.. 이름이 에지간이 멋있네요.. 하튼 이놈의 패턴들은 이름 간지 포스가 좔좔....

후후 재미있는 예제 소스 속으로 일단 빠져 보시겠습니다.

이번 예제의 에피소드는 남녀의 작업 실태?? 정도로 생각하시고... 가벼운 마음으로 보시길 바랍니다. 괜히 여기서 성정체성을 찾는다던가.. 나는 안그런데.. 이러실 필요 없습니다.. -_- 왜? 제 생각이니까요..

package templateMethod;

import java.util.Random;

/**

* 클래스는 GoF 디자인 패턴 공부를 하기 위한 예제 소스입니다. 저작권은 있지만 마음껏 배포 수정 가능합니다. 한마디로 저작권

* 없습니다. -_-;;

*

* @since 2007. August. 10.

* @author Mr.Tint

*/

public class Boy {

          void findMates() {

                    feelLoneliness();

                    findGirlsWhoYouNeeds();

                    doLoveMaking();

                    declareYourLove();

          }

          public void declareYourLove() {

                    System.out.println("당신의 사랑을 열렬히 고백합니다!");

          }

          public void doLoveMaking() {

                    String actions[] = { "명품 백을 겁나게 사줍니다.", "근사한 레스토랑에 가서 식사를 합니다.",

                                         "이쁘고 완죤 비싼 옷을 사줍니다." };

                    System.out.println(actions[new Random().nextInt(actions.length)]);

          }

          public void findGirlsWhoYouNeeds() {

                    System.out.println("'이쁜' 여자를 찾기 시작합니다.");

          }

          public void feelLoneliness() {

                    System.out.println("고독함을 절실히 느낍니다.");

          }

}

이런 클래스가 있습니다 -_- 아 진짜.. 내용은 보지 마셔요.. 편견을 갖게 됩니다 ㅋㅋㅋㅋㅋㅋㅋ 아무튼간에요.. 저런걸 만들었습니다.. 그럼 Girl 이라는 클래스에는 뭐가 있을까요??


package templateMethod;

import java.util.Random;

/**

* 클래스는 GoF 디자인 패턴 공부를 하기 위한 예제 소스입니다. 저작권은 있지만 마음껏 배포 수정 가능합니다. 한마디로 저작권

* 없습니다. -_-;;

*

* @since 2007. August. 10.

* @author Mr.Tint

*/

public class Girl {

          void findMates() {

                    feelLoneliness();

                    findBoysWhoYouNeeds();

                    attractSomeonesInterest();

                    declareYourLove();

          }

          public void attractSomeonesInterest() {

                    String actions[] = { "일부러 관심 없는 척을 좀 합니다.", "눈에 많이 띄기 위해서 노력 합니다",

                                         "안쓰던 애교와 간지러운 말투를 사용합니다." };

                    System.out.println(actions[new Random().nextInt(actions.length)]);

          }

          public void declareYourLove() {

                    System.out.println("당신의 사랑을 열렬히 고백합니다!");

          }

          public void findBoysWhoYouNeeds() {

                    System.out.println("'엄마 친구 아들' 같은 남자를 찾기 시작합니다.");

          }

          public void feelLoneliness() {

                    System.out.println("고독함을 절실히 느낍니다.");

          }

}

예.. 이겁니다... 호호.. 아무튼.. 두 클래스를 보면.. 얼추.. 비슷하지요?? 액션이나.. 남자가 여자를 찾는다던가 여자가 남자를 찾는다던가.. 이런거가 틀리잖아요?? 짝을 찾는데는 왕도가 없는거죠.. 호호.. 그런겁니다!!