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

2021년 02월 19일, 19:30

디자인 패턴이란?

  • 설계 문제에 대한 해답을 문서화하기위해 고안된 형식 방법
  • 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론
  • 좋은 코드(SOLID) 원칙이 지켜지는 코드
  • GoF(Gang of Fout)
    • 에리히 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시디스(John Vissides)
    • Design Patterns: Elements of Reusable Object-Oriented Software에서 구체적으로 처음 등장
    • 23가지의 디자인 패턴을 정리하고, 각각 디자인 패턴을 생성(Credential), 구조(Structural), 행위(Behavioral) 3가지로 구분

디자인 패턴의 분류(GoF)

  • 생성(Credential)

    • 객체의 생성에 관련된 패턴
    • 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성 제공
    • 종류
      • 싱글턴(Singleton)
      • 빌더(Builder)
      • 팩토리 메소드(Factory Method)
      • 프로토타입(Prototype)
      • 추상 팩토리(Abstract Factory)
  • 구조(Structural) 패턴

    • 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
    • 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스로 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴
    • 종류
      • 어댑터(Adapter)
      • 브리지(Bridge)
      • 컴퍼지트(Composite)
      • 데커레이터(Decorator)
      • 퍼사드(Facade)
      • 플라이웨이트(Flyweight)
      • 프록시(Proxy)
  • 행위(Behavioral) 패턴

    • 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
    • 종류
      • 책임 연쇄(Chain of Responsibility)
      • 커맨드(Command)
      • 인터프리터(Interpreter)
      • 이터레이터(Iterator)
      • 미디에이터(Mediator)
      • 메멘토(Memento)
      • 옵저버(Observer)
      • 스테이트(State)
      • 스트레티지(Strategy)
      • 템플릿 메소드(Template Method)
      • 비지터(Visitor)

참고

asdfas basdfasf
a a