Web Programming

[Java] Design Pattern이란

효딩 2024. 2. 2. 16:56

1. 디자인 패턴이란

소프트웨어 디자인에서 주어진 컨텍스트 내에서 일반적으로 발생하는 문제에 대한

재사용 가능한 일반적인 솔루션

 

소프트웨어 디자인 과정(코드 구현 전 설계) 전형적인 해결책

 

쉽게 말해 게임 공략법, 전략과 비슷하다고 생각하면 된다!

최적의 설계 노하우를 정리해놓은 정리집?

 

어렵게만 생각할 것이 아니라

여태까지 배운 개념들을 유기적으로 연결해서 사용한다고 보면 된다.

 

2. 디자인 패턴 사용 이유

- 유연성: 디자인 패턴을 사용하면 코드가 유연해지며 개체가 서로 느슨하게 결합되어 코드를 쉽게 변경할 수 있으므로 올바른 수준의 추상화를 제공하는데 도움이 된다.

- 재사용성: 느슨하게 결합되고 결합된 객체 및 클래스는 더 재사용할 수 있게 만들며 이러한 종류의 코드는 고도로 결합된 코드에 비해 테스트하기 쉽다.

- 공유 어휘: 공유 어휘를 사용하면 코드와 생각을 다른 팀원과 쉽게 공유할 수 있으며 코드와 관련된 팀원 간의 이해를 높일 수 있다.

- 모범 사례 캡쳐: 디자인 패턴은 문제에 성공적으로 적용된 솔루션을 캡쳐하며 이러한 패턴과 관련 문제를 학습함으로써 미숙한 개발자는 소프트웨어 디자인에 대해 많은 것을 배울 수 있다.

 

3. 디자인 패턴 분류

1) 생성 패턴

2) 구조 패턴

3) 행위 패턴

생성 패턴 (5개) + 구조 패턴 (7개) + 행동패턴 (11)개로 이루어져 있다.
생성(Creational) 패턴 구조(Structural) 패턴 행위(Behavioral) 패턴
추상 팩토리(Abstract Factory)
빌더(Builder)
팩토리 메서드(Factory Method)
프로토 타입(Prototype)
싱글턴(Singleton)
어댑터(Adapter)
브릿지(Bridge)
컴퍼지트(Composite)
데커레이터(Decorator)
퍼사드(FaA§ade)
플라이웨이트(Flyweight)
프록시(Proxy)
체인 오브 리스폰스빌리티
(Chain of Responsibility)
커맨드(Command)
인터프리터(Interpreter)
이터레이터(Iterator)
미디에이터(Mediator)
메멘토(Memento)
옵저버(Observer)
스테이트(State)
스트래티지(Strategy)
템플릿 메서드(Template Method)
비지터(Visitor)

 

참고

https://djlife.tistory.com/3

 

[JAVA] Design Pattern 이 도대체 뭘까? 공부해야 할까?

자바 디자인 패턴이 도대체 뭘까 필요한걸까? 공부해야되는걸까..? 🤔 위와 같은 질문에 나의 대답은 공부해야 한다😞 디자인 패턴을 알면 보다 소스 파악이 쉽고 표준화나 코어쪽 개발 직무를

djlife.tistory.com