본문 바로가기

Programming/Design Pattern

[Design Pattern] 디자인패턴(Design Pattern)이란?

728x90

디자인 패턴(Design Pattern)이란?


소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학에서 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. (출처 : 위키백과)

 

→  소프트웨어 설계시 자주 나타나는 문제를 해결하기 위해 활용하는 설계 구조

 

설계상의 구조적인 문제를 해결하는데 도움을 줌


디자인 패턴의 분류


1. 생성패턴 (Creational Pattern)

인스턴스의 생성에 관여된 패턴으로서 클래스의 정의와 객체 생성 방식을 구조화하고 캡슐화와 관련된 패턴
  • 팩토리 메소드 패턴 (Factory Method Pattern)
  • 추상 팩토리 패턴 (Abstract Factory Pattern)
  • 싱글톤 패턴 (Singletone Pattern)
  • 빌더 패턴 (Builder Pattern)
  • 프로토타입 패턴 (Prototype Pattern)

2. 행동패턴 (Behavioral Pattern)

클래스나 객체들이 상호작용하는 방법과 역할 분담을 다루는 패턴 (멤버 함수를 어떻게 구성할 것인가)
  • 스트래티지 패턴 (Strategy Pattern)
  • 템플릿 메소드 패턴 (Template Method Pattern)
  • 책임연쇄 패턴 (Chain-of-Responsibility Pattern)
  • 스테이트 패턴 (State Pattern)
  • 커맨드 패턴 (Command Pattern)
  • 이터레이터 패턴 (Iterator Pattern)
  • 메멘토 패턴 (Memento Pattern)
  • 미디에이터 패턴 (Mediator Pattern)
  • 옵저버 패턴 (Observer Pattern)

3. 구조패턴 (Structural Pattern)

더 큰 구조의 형성을 목적으로 클래스나 객체의 조합을 다루는 패턴
  • 어댑터 패턴 (Adapter Pattern)
  • 퍼사드 패턴 (Pacade Pattern)
  • 데코레이터 패턴 (Decorator Pattern)
  • 브릿지 패턴 (Bridge Pattern)
  • 복합체 패턴 (Composite Pattern)
  • 플라이 웨이트 패턴 (Flyweight Pattern)

 

앞으로 디자인 패턴 하나하나 공부하면서 각각의 장단점과 사용법을 익혀야겠다..!