2011년 5월 22일 일요일

What is a Design Patterns?

What Is a Pattern?
반복되는 공통적인 문제에 대하여 가장 적절한 해결책을 제시하는 것

Benefits of Patterns(패턴의 이득)
· 디자인 문제점을 토론하기 위한 높은 레벨의 언어를 제공한다.
· 디자인 문제의 해결책을 제공한다.
· 패턴의 조합은 재사용할 수 있는 아키택쳐를 제공 한다.

디자인 패턴을 적용할 때 제일 중요한 세가지 규칙
· 구현 클래스가 아니라 인터페이스를 가지고 프로그래밍한다. à 인터페이스를 바탕으로 하는 클래스 호출
· 상속(inheritance)이 아니라 위임(delegation)을 주로 사용한다.
· Coupling을 최소화함으로써 추후의 변화를 국부화 한다.  어느 하나의 기능 변화가 전체 클래스 구조를 바꾸거나 혹은 많은 부분에 걸친 변화를 야기한다면 디자인이 초기부터 잘 못 되어진 거라 할 수 있다. 디자인 패턴의 기본 중에 기본은 “coupling을 최소화” 함에 있다.

디자인패턴 카탈로그 기술 형식
  • name(이름) : 패턴의 이름은 패턴 자체의 내용을 효과적으로 전달할 수 있어야 한다.
  • Classification(종류) : 여러 개의 패턴들을 체계적으로 분류한다. (예: 생성, 구조, 행위)
  • Intent(의도) : 이 패턴이 무엇을 하며 어떤 의도로 작성되었으며 무슨 문제를 해결하는 지를 설명하는 간단한 문장
  • Motivation(동기) : 이 패턴이 해결해야 하는 디자인 문제와 그것을 해결하기 위해 클래스와 객체들이 어떻게 사용되는지에 대해 시나리오 형식으로 기술함
  • Applicability(적용시기)
  • Structure(구조) : 패턴에서 문제를 해결하기 위해 사용되는 클래스와 객체의 구조 UML 1.2 다이어그램을 통해서 일반적으로 표현한다.
  • Participants(구성물) : “구조”항목에 포함된 각종 클래스와 객체의 의미와 그 책임을 설명
  • Collaboration(협력관계) : 각 클래스와 객체가 자신에게 맡겨진 책임을 수행하기 위해 서로 메시지를 주고 받는 과정을 묘사함.
  • Consequence(결과) : 패턴이 목적을 달성하기 위해 어떤 면을 해결하는 지를 설명하고 패턴을 적용할 때 발생할 수 있는 문제점과 패턴적용시의 효과, 시스템 상황에 따라서 변동하는 부분들을 기술
  • Implementation(구현) : 패턴을 구현할 때의 고려사항과 힌트, 함정, 테크닉등과 프로그래밍 언어 별로 주의해야할 점들을 기술
  • Sample Code(예제코드) : 특정 프로그래밍 언어로 패턴을 구현한 예제를 보임
  • Known Uses(알려진 사례) : 실제로 사용되는 시스템에서 발견되는 패턴의 예제를 기술
  • Related Patterns(관련 패턴) : 본 패턴과 유사하거나 밀접하게 관련된 다른 패턴을 기술

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...