디자인 패턴

  • Design Pattern
  • 객체 지향 프로그래밍 설계를 할 때, 자주 발생하는 문제들을 피하기 위해 사용되는 패턴
  • 구성요소
    • 패턴의 이름
    • 문제 및 배경
    • 솔루션
    • 사례
    • 결과
    • 샘플코드
  • 유형
    • 목적
      • 생성
        • 객체, 인스턴스 생성에 관해 클래스 정의와 객체 생성 방식 구조화 캡슐화를 수행하는 패턴
      • 구조
        • 더 큰 구조 형성 목적으로 클래스와 객체의 조합을 다루는 패턴
      • 행위
        • 클래스 나 객체들이 상호작용하는 방법과 역할을 분담하는 패턴
    • 범위
      • 클래스
        • 클래스 간 관련성
        • 컴파일 타임에 정적으로 결정
      • 객체
        • 런타임에 동적으로 결정
        • 객체간 관련성을 다루는 패턴
  • 디자인 패턴 종류
  • 디자인 패턴의 장단점
    • 장점
      • 요구사항 변경에 따른 소스 코드 변경을 최소화할 수 있게 해줌
      • 설계 변경 요청에 대한 유연한 대처가 가능
      • 범용적인 코딩 스타일 적용 가능
      • 개발자 간의 원활한 의사소통 가능
      • 재사용을 통한 개발 시간 단축 가능
      • 소프트웨어 구조 파악 용이
      • 객체지향 설계 및 구현의 생산성을 높이는데 적합
    • 단점
      • 객체지향 설계/구현 위주로 사용
      • 초기 투자 비용의 부담