[디자인 패턴] 디자인 패턴?

최진민·2021년 11월 14일
0

디자인 패턴

목록 보기
2/10
post-thumbnail

🚘 0. 목차

  • 정의
  • 구조
  • 종류


🛥 1. 정의

  • Design Pattern
    • SW 설계 시, 특정 맥락에서 자주 발생하는 문제 및 반복적인 코딩들이 설계될 때 재사용할 수 있도록 하는 해결책
    • 패턴?
      • 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 sw 시스템들을 개발할 때도 서로 간 공통되는 설계 문제가 있고, 이를 해결하는 방법에도 공통점이 존재한다. => 패턴
      • 패턴은 팀원간 원활한 의사소통을 야기한다.


🏰 2. 구조

  • 콘텍스트 (context)
    • 문제가 발생하는 상황 = 패턴이 적용될 수 있는 상황
    • 또는, 패턴이 유용하지 못한 상황
  • 문제 (problem)
    • 패턴이 적용되어 해결될 필요가 있는 디자인 이슈
    • 중요한 점! 문제 해결을 위해서 제약 사항과 영향력도 고려
  • 해결 (solution)
    • 문제를 해결하는 설계 요소와 요소들 사이의 관계, 책임, 협력 관계 기술
    • 해결은 반드시 구체적인 방법, 언어에 의존적이지 않고 다양한 상황에 적용할 수 있는 일종의 템플릿(컴포넌트)


🏝 3. 종류

  • GoF 디자인 패턴

    • GoF (Gang of Four), 디자인 패턴 4명의 권위자

      • Erich Gamma, Richard Helm, Ralph Johnson, John Vissides
      • 디자인 패턴을 구체화하고 체계화
    • GoF 디자인 패턴 분류

      구조생성구조행위
      클래스- 팩토리 메서드 (Factory Method)- 어댑터 (Adaptor)- 인터프티러 (Interpreter)
      - 템플릿 메서드 (Template Method)
      객체- 추상 팩토리 (Abstract Factory)
      - 빌더 (Builder)
      - 프로토타입 (Prototype)
      - 싱글톤 (Singleton)
      - 브리지 (Bridge)
      - 컴퍼지트 (Composite)
      - 데코레이터 (Decorator)
      - 퍼사드 (Facade)
      - 플라이 웨이트 (Fly weight)
      - 프록시 (Proxy)
      - 책임 연쇄 (Chain of Responsibility)
      - 커맨드 (Command)
      - 이터레이터 (Iterator)
      - 미디에이터 (Mediator)
      - 메멘토 (Memento)
      - 옵저버 (Observer)
      - 스테이트 (State)
      - 스트래티지 (Strategy)
      - 비지터 (Visitor)
      • 생성 패턴

        • 객체 생성과 관련된 패턴
        • 객체의 생성과 조합을 캡슐화, 특정 객체의 생성 및 변경이 프로그램 구조에 영향을 미치지 않도록 유연성을 제공
      • 구조 패턴

        • 클래스 및 인터페이스를 조합해 더 큰 구조를 생성하는 패턴
        • ex) 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공
      • 행위 패턴

        • 클래스와 객체 사이의 알고리즘 및 책임 분배와 관련된 패턴
          • 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 분배하며 결합도를 최소하하는 것에 중점
    • GoF 디자인 패턴 참조 관계도

profile
열심히 해보자9999

0개의 댓글