본문 바로가기
개발

[ 디자인 패턴 ] 디자인 패턴의 개념과 종류

by Crmal 2023. 8. 25.

디자인 패턴이란

  • 소프트웨어를 설계할 때 반복적으로 일어나는 문제들이 또 발생했을 때 재사용할 할 수있는 솔루션
  • 패턴이란
    • 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴이라 한다.
    • 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다.

GoF의 디자인 패턴

  • GoF의 디자인패턴이란 디자인 패턴 계의 교과서라고 불린다고 한다. 객체지향적 디자인 패턴을 "생성 패턴(Creational Pattern)", "구조패턴(StructuralPattern)","행동 패턴(Behavioral Pattern)" 3가지로 구분하고 있다.

1. 생성(Creational) 패턴

객체 생성(인스턴스화)

특정 개체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성 제공

1.1 추상 팩토리(Abstract Factory)

1.2 빌더(Builder)

1.3 팩토리메서드(FactoryMethod)

1.4 프로토타입(Prototype)

1.5 싱글톤(Singleton)

2. 구조(Structural) 패턴

객체 결합(조합)

클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴

2.1 어댑터(Adapter)

2.2 브리지(Bridge)

2.3 컴포지트(Composite)

2.4 데코레이터(Decorator)

2.5 파사드(Facade)

2.6 플라이웨이트(Flyweight)

2.7 프록시(Proxy)

3. 행위(Behavioral) 패턴

객체 간 커뮤니케이션

객체(클래스)사이에 알고리즘이나 책임 분배에 관련한 패턴

결합도를 최소화하는 것에 중점을 둔다

3.1 책임 연쇄(Chain of Responsibility)

3.2 커맨드(Command)

3.3 인터프리터(InterPreter)

3.4 이터레이터(Iterator)

3.5 중재자(Mediator)

3.6 메멘토(Memento)

3.7 옵서버(Observer)

3.8 상태(State)

3.9 전략(Strategy)

3.10 템플릿메서드(Template Method)

3.11 방문자(Visitor)

댓글