Etc

Design Pattern - 종류

SuperDT 2024. 5. 19. 23:33

 

 

디자인패턴과 알고리즘은 유사하지만 아래와 같이 정의할 수 있습니다

 

디자인 패턴

소프트웨어 디자인에서 공통적으로 발생하는 문제를 다루는 

보편적이고 반복해서 사용할 수 있는 방법

*코드로 직접 변환될 수 있는 완성된 설계가 아니라

 다양한 상황에 사용될 수 있는 설명이나 템플릿

 

알고리즘

문제 해결을 위한 처리 절차

 

 

디자인 패턴은 아래와 같이 세 가지 형태로 분류할 수 있습니다

 

1. Creational Patterns (생성 패턴)

객체 생성 메커니즘

객체 생성 패턴, 클래스 생성 패턴으로 분류

ex) Factory, Abstract, Factory, Builder, Prototype, Singleton

 

2. Structural Patterns (구조 패턴)

객체들과 클래스들이 커다란 구조를 형성하기 위해 결합될 수 있는 방법을 설명

클래스패턴, 상속의 도움을 받아 추상화를 설명하고 더 유용한 인터페이스를 제공

객체 패턴, 객체들이 크고 더 복잡한 구조를 형성하기 위해 연결되고 구성되는지 설명

ex) Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy

 

3. Behavioral Patterns (행위 패턴)

객체 사이의 상호 작용과 관련된 것

ex) 객체 간에 공통의 통신 패턴을 파악하고 이러한 패턴을 실현

Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template, Visitor 

 

 

이러한 패턴을 적절하게 잘 적용하려면

아래와 같은 순서로 경험을 해보는게 가장 좋습니다

 

주어진 문제를 이해 -> 세밀한 문제로 분해 -> 특정 문제를 해결하기 위한 디자인 패턴 선택

-> 선택한 디자인 패턴으로 다시 확인 -> 여러 패턴 적용 또는 변형 후 적용