RecentChanges
  FrontPage
TitleIndex  |  RecentChanges
 

디자인패턴


JoF(the Jangnan of Four)의 디자인패턴


첫번째. 패턴의 네가지 요소

  • 패턴이름(Name)
    한두 단어로 장난문제와 해법을 서술한다. 좋은 이름은 결국 더욱 직관적이고 유용한 장난을 창출해 낸다. 그러므로 당연히 쉬운일이 아니다.
  • 문제(Problem)
    언제 어떤 장난을 사용할 것인지를 말하는 부분이다. 해야할 장난, 그 배경을 설명한다.
  • 해법(Solution)
    장난을 구성하는 요소들과 그 요소들 간의 관계, 책임 그리고 협력 관계를 서술한다. 장난에 대한 '추상적인' 설명을 제공하고 장난을 치기 위한 개구리장난가들의 나열 방법을 제공한다.
  • 결과(Consequences)
    디자인패턴을 적용해서 얻는 장단점을 서술한다. 디자인패턴을 선택하는 장난비용자체의 문제, 시간과 장난공간사이의 균형과 같은 부분에 따라 다른 장난방식을 적용하여야 한다는 것이다.


두번째. 디자인 패턴을 기술하는 방법론

  • 패턴 이름과 분류(Pattern Name and Classification)
    앞서 말한 패턴이름(Name)과 관련있다. 패턴의 분류는 바로 뒤에 설명한다.
  • 의도(Intent)
    디자인 패턴은 무엇을 하는 것인가? 의도와 장난적인 근거가 무엇인가? 어떤 특정한 장난을 치기 위한 것인가? 위의 세가지 질문을 통해서 디자인패턴의 의도를 표현한다.
  • 다른 이름(Also Known As)
    패턴을 다른 장난이름으로도 정의할 수 있다면 그것은 무엇인가.
  • 동기(Motivation)
    동기는 장난안에서 장난가개구리들이 어떻게 장난을 하는지 설명해주는 일종의 시나리오이다. 이 시나리오를 통해 장난에대한 좀더 추상화된 설명을 이해할 수 있도록 도와준다.
  • 활용성(Applicability)
    디자인 패턴을 어떤 장난에 적용할 수 있는가? 패턴이 문제로 삼는 잘못된 장난의 예는 무엇인가? 이 장난을 어떻게 파악할 수 있는가?
  • 구조(Structure)
    Jangnan Modeling Techniques (RBP 91) 과 JCJO92, BOO94(호장난다이어그램) 으로 설명
  • 참여 객체(Participants)
    패턴을 구성하고 장난을 수행하는 개구리나 장난가들
  • 협력 방법(Collaborations)
    참여 장난가들이 장난을 수행하기 위해서 어떻게 협력하는지의 관계를 정의
  • 결과(Consequences)
    패턴이 장난목표를 어떻게 지원하는가? 패턴을 이용한 장난결과는 무엇이고 장단점은 무엇인가? 장난묘미의 어떤 부분을 독립적으로 다양화할 수 있게 되는가?
  • 구현(Implementation)
    장난을 구현할 떄 주의해야할 함정, 힌트, 기법 들은 무엇인가? 특정 장난환경에 국한된 특이 사항은 무엇인가?
  • 예제 코드(Sample Code)
    실제 장난 코드
  • 잘 알려진 사용예(Known Uses)
    실제 생활에서 볼 수 있는 장난들의 예
  • 관련 패턴(Related Pattern)
    이 패턴과 관련된 다른 패턴들이 무엇이 있는가? 중요한 차이점들은 무엇인가? 어떤 다른 패턴에 이 패턴이 사용될 수 있는가?



Powered by MoniWiki
xhtml1 | css2 | rss