디자인패턴은 개발하면서 공통적으로 발생하는 문제들을 어떻게 해결 할 것인지에 대한 해결 방안으로 다양한 해결책 중에서 많은 사람들이 인정한 모범사례이다.
바로 전환될 수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다.
디자인패턴은 객체지향 4대 특성(캡슐화, 상속, 추상화, 다형성)과 설계원칙(SOLID)을 기반으로 구현되어 있다.
디자인패턴은 재사용성, 가독성, 유지보수성, 확장성, 안정성과 신뢰성이라는 장점이 있다.
재사용성은 반복적인 문제에 대한 일반적인 해결책을 제공하는 것으로 이를 재사용하여 유사한 상황에서 코드를 더 쉽게 작성할 수 있다.
가독성은 명확하게 작성하여 개발자가 코드를 이해하고 유지보수하기 쉽게 만드는 것이다.
유지보수성은 코드를 쉽게 모듈화 할 수 있으며, 변경이 필요한 경우 해당 모듈만 수정하는 것으로 유지보수가 가능하도록 하는 것이다.
확장성은 새로운 기능을 추가하거나 변경할 때 기존코드를 변경하지 않고도 새로운 기능을 통합할 수 있는 것이다.
안정성과 신뢰성은 수많은 사람들이 인정한 모범사례로 검증된 솔루션이기 때문에 안정적이고 신뢰성있는 패턴이라고 할 수 있다.
디자인 패턴의 종류
디자인 패턴으로 가장 유명한 GoF 디자인 패턴에서는 크게 생성패턴(Creational Pattern), 구조패턴(Structural Pattern), 행동(행위)패턴(Behavioral Pattern)으로 분류되며 각각 5개, 7개, 11개의 패턴으로 총 23개의 패턴이 존재한다.
생성패턴(Creational Pattern)
1. 싱글톤(Singleton)
2. 빌더(Builder)
3. 팩토리 메소드(Factory Method)
4. 추상 팩토리(Abstract Factory)
5. 프로토타입(Prototype)
구조패턴(Structural Pattern)
2. 브릿지(Bridge)
3. 컴포지트(Composite)
4. 데코레이터(Decorator)
5. 퍼사드(Facade)
6. 플라이웨이트(flyweight)
7. 프록시(Proxy)
행동(행위) 패턴(Behavioral Pattern)
1. 책임 연쇄(Chain of Responsibility)
2. 커맨드(Command)
3. 인터프리터(Interpreter)
5. 중재자(Mediator)
6. 메멘토(Memento)
7. 옵저버(Observer)
8. 상태(State)
10. 템플릿 메소드(Template Method)
11. 방문자(Visitor)
계속해서 디자인패턴을 학습할 계획이며, 포스팅 할 때마다 위 패턴 목록에 링크를 추가할 계획이다.
Reference
[OOP] 디자인 패턴(Design Pattern)이란? - 장점 및 종류
디자인 패턴(Design Pattern)이란? 디자인 패턴은 개발하면서 발생하는 반복적인 문제들을 어떻게 해결할 것인지에 대한 해결 방안으로 실제 현업에서 비즈니스 요구 사항을 프로그래밍으로 처리하
ittrue.tistory.com
소프트웨어 디자인 패턴 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결
ko.wikipedia.org
'JAVA > Design Pattern' 카테고리의 다른 글
디자인패턴(Java) - 템플릿 메소드(Template Method) (0) | 2023.12.27 |
---|---|
디자인패턴(Java) - 전략패턴(Strategy Pattern) (1) | 2023.12.19 |
디자인패턴(Java) - 어댑터(Adapter) (0) | 2023.12.16 |
디자인패턴(Java) - 반복자(Iterator) (1) | 2023.12.15 |