디자인 패턴

JIHYUN·2023년 9월 11일
0

정처기

목록 보기
2/13
  • 소프트웨어 설계에세 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴
  • 개발의 효율성, 유지보수성, 운용성이 높아진다.

구성요소

  • 패턴의 이름
  • 문제 및 배경
  • 솔루션
  • 사례
  • 결과
  • 샘플 코드

유형

  • 목적
    • 생성: 객체 인스턴스 생성, 클래스 정의, 객체 생성 방식 구조화, 캡슐화
    • 구조: 더 큰 구조 형성 목적으로 클래스나 객체의 조합을 다룸
    • 행위: 클래스나 객체들이 상호 작용하는 방법, 역할 분담
  • 범위
    • 클래스: 클래스 간 관련성, 컴파일 타임에 정적으로 결정
    • 객체: 객체 간 관련성, 런타임에 동적으로 결정

종류

  • 생성 패턴: 객체의 생성과 조합을 캡슐화. 객체 생성, 변화에 프로그램이 영향을 받지 않도록 유연성 제공
    • Builder
      구조를 가진 인스턴스 구축
    • Prototype
      클래스로부터 인스턴스 생성이 아닌, 인스턴스로부터 다른 인스턴스 생성
    • Factory Method
      인스턴스 만드는 방법을 슈퍼 클래스로 정하고 구체적인 생성 처리는 서브 클래스에서 실시
    • Adstract Factory
      구체적인 구현이 아닌 인터페이스에 주목
    • Singleton
      인스턴스를 하나만 가지도록
  • 구조 패턴: 클래스나 객체를 조합, 더 큰 구조를 만드는 패턴

    • Bridge 구분, 다리 놓기
      기능 클래스 계층과 구현 클래스 계층간에 다리를 놓는 역할
    • Decorator 꾸미기
      객체 위에 계속해서 내용을 덧붙임
    • Facade 요약
      소프트웨어의 복잡한 부분 사용할 수 있게 간략한 인터페이스를 제공
    • Flyweight 경량
      인스턴스 사용량을 늘려 메모리 사용량을 줄인다
    • Proxy 대리인
      객체에 접근하기 위한 대리인을 만든다
      흐름제어만 가능, 결과값 조작 또는 변경은 불가
    • Composite<<<<<< 니내내니
      혼합, 복합 -> 재귀 구조
    • Adapter 변환탭
      그대로 사용할 수 없는 것을 사용할 수 있도록 변환해서 사용
  • 행위 패턴

    • Mediator 중개자
      중개자를 통해서 행동으로 이어짐
    • Interprter 통역
      파일의 내용 통역해주는 역할 하는 프로그램
    • Iterator 반복
      기능 재사용 가능하게 함
    • Template Method
      수퍼 클래스로 처리의 틀을 정하고, 서브 클래스로 구체적 내용을 정함
    • Observer 관찰자
      상태 변화에 따른 처리를 기술할 때 사용
    • State 상태
      상태를 클래스로 표현, 클래스를 전환하여 상태 변경을 나타냄
    • Vistor 방문자
      데이터 구조와 처리를 분리
      새로운 처리를 추가하고 싶을 때 새로운 방문자를 만들어주고 구조에서 방문자를 받아주는 방식
    • Command 명령
      명령을 나타내는 클래스의 인스턴스를 하나로 표현
      명령 모음을 저장하면 동일한 명령을 실행하거나 여러명형을 함께 새 명령으로 재사용할 수 있다.
    • Strategy 전략
      시스템이 유연하게 변경되고 확장될 수 있도록 한다.
      각각에 맞는 전략을 선택하여 전개할 수 있다.
    • Memento 기억
      인스턴스의 상태를 나타내며 캡슐화를 유지하고 상태를 저장하거나 복원한다
    • Chain of Responsibility 연쇄책임
      여러개의 객체를 연결하여 순차적으로 최종적인 객체를 결정
profile
🍋

0개의 댓글