👨💻 디자인 패턴(Design Pattern)이란?
• SW 개발 방법 중에서도 구조적인 문제 해결에 목적을 둔다.
• 알고리즘과 같이 특정 문제를 해결하는 Logic 형태보다는
특정 상황에 적용할 수 있는 방법론
• 자주 반복되는 문제에 해결책
→ 재사용과 팀원과의 의사소통
• 23가지 디자인 패턴이 존재한다.
• 연관되는 개념으로는 SOLID 원칙과 클린 코드(Clean Code) 등이 있다.
• 「Gof (Gang of Four) 디자인 패턴」 으로 알려져 있다.
→ Erich Gamma / Richard Helm / Ralph Johnson / John Vissides
객체 지향 프로그래밍 5대 원칙 [SOLID]
객체지향 프로그래밍에는 「SOLID」 원칙이 있다. 유연하고 확장성이 있는 코드 재사용에 목적을 둔다. • SRP (Single Responsibility Principle, 단일책임) • OCP (Open-Closed Principle, 개방-폐쇄 원칙) • LSP (L
zoosso.tistory.com
👨💻 디자인 패턴 종류
디자인 패턴은 목적에 따라 3가지로 구분할 수 있다.
• 생성 패턴 (Creational Patterns)
• 구조 패턴 (Structural Patterns)
• 행위 패턴 (Behavioral Patterns)
생성 패턴 (Creational Patterns)
• 객체 생성과 조합을 캡슐화하여
특정 객체가 추가/변경되어도 프로그램 구조 변경을 최소화 한다.
* 캡슐화: 객체가 어떻게 생성되고 결합하는지 보이지 않게 한다.
📍 추상 팩토리 메소드 (Abstract Factory Method)
📍 빌더 패턴(Builder)
📍 팩토리 메소드 (Factory)
📍 원형 패턴(Prototype)
📍 싱글톤(Singleton)
구조 패턴 (Structural Patterns)
• 클래스와 객체를 절묘하게 연결하여 동작시킨다.
ex) 서로 다른 인터페이스에서 단일 인터페이스 제공
📍 어댑터 (Adapter)
📍 브릿지(Bridge)
📍 컴포지트(Composite)
📍 데코레이터 (Decorator)
📍 퍼사드 (Facade)
📍 플라이웨이트 (Flyweight)
📍 프록시(Proxy)
행위 패턴 (Behavioral Patterns)
• 객체나 클래스 사이 소통 방식에 적용되는 패턴이다.
• 진행되는 워크 플로우 정의하여 결합도를 최소화하는 것에 중점을 둔다.
📍 역할 사슬 (Chain of Responsibility)
📍 커맨드(Command)
📍 인터프리터 (Interpreter)
📍 이터레이터 (Iterator)
📍 방문자 (Visitor)
📍 중재자 (Mediator)
📍 메멘토 (Memento)
📍 옵서버(Observer)
📍 상태 (State)
📍 전략 (Strategy)
📍 템플릿 메소드 (Template Method)
👨💻 How To Study?
디자인 패턴 학습에 있어서 특정 패턴이 "언제? 왜? 생겼는지"
그리고 "다른 패턴과의 연관성" 위주로 공부하면 좋다.
📌 (알파벳 순) 목적별로 구분한 디자인 패턴
생성 패턴 (5) | 구조 패턴 (7) | 행위 패턴 (11) |
Abstract Factory
Builder
Factory Method
Prototype
Singleton
|
Adapter
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
|
Chain of Responsibility
Command
Interpreter
Iterator
Visitor
Mediator
Memento
Observer
State
Strategy
Template Method
|
📌 디자인 패턴을 Scope (Class / Object)까지 구분하는 경우
Scope | 생성 패턴 (5) | 구조 패턴 (7) | 행위 패턴 (11) |
Class | Abstract Factory | Adapter |
Interpreter
Template Method
|
Object |
Builder
Factory Method
Prototype
Singleton
|
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
|
Chain of Responsibility
Command
Iterator
Visitor
Mediator
Memento
Observer
State
Strategy
|
👨💻 Best 디자인 패턴은 무엇일까?
개념자체도 쉽지 않고 헷갈리는 부분도 많은 개념이다.
무엇보다 실무 적용이 가능할지 의문이 든다,,,🙃
• 대부분 문제상황을 커버할 수 있을지
• 담당 개발자가 잘 구현할 수 있을지
• 다른 개발자 협업 및 의사소통이 되는지
• 적용 후에 유지보수가 가능한지
적합한 디자인 패턴 적용 여부는 개발자 몫이다.
요구사항 변경으로 디자인 패턴이 변경해야 할 수도 있고,
특정 프로그래밍 언어에 제한(종속)적일 수도 있다.
'까망 동네 > 디자인 패턴' 카테고리의 다른 글
[객체 지향] IS-A 관계와 HAS-A 관계 (2) | 2024.10.21 |
---|---|
[디자인패턴] 어댑터 패턴 (Adapter Pattern) (8) | 2024.10.13 |
[디자인패턴] 체인 패턴 (Chain of Responsibility, 책임 연쇄) (4) | 2024.07.31 |
객체 지향 프로그래밍 5대 원칙 [SOLID] (40) | 2023.11.19 |
[디자인 패턴] 반복자 패턴(Iterator Pattern) (33) | 2023.11.14 |
댓글