Programming/CS
[OOP] 디자인 패턴(Design Pattern)?
디아쿠
2024. 12. 30. 12:28
디자인 패턴이란?
소프트웨어 공학에서 자주 발생하는 문제에 대한 재사용 가능한 솔루션을 의미한다. 이는 특정한 설계 문제를 해결하기 위해 모범 사례를 정리한 것으로, 프로그래밍에서 반복적으로 사용할 수 있는 설계 방법을 제공한다.
디자인 패턴은 크게 세 가지 종류로 나눌 수 있다.
1. 생성 패턴 (Creational Patterns) :
객체 생성과 관련된 패턴으로, 객체의 생성 과정을 추상화하여 시스템의 유연성을 증가시킨다.
Singleton 싱글톤 패턴 | Factory Method 팩토리 메서드 패턴 |
Abstract Factory 추상 팩토리 패턴 | Builder 빌더 패턴 |
Prototype 프로토타입 패턴 |
2. 구조 패턴 (Structural Patterns) :
클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴으로, 다양한 클래스의 인터페이스를 조합하여 새로운 기능을 제공한다.
Adapter 어댑터 패턴 | Decorator 데코레이터 패턴 |
Bridge 브릿지 패턴 | Composite 컴포지트 패턴 |
Facade 퍼사드 패턴 | Flyweight 플라이웨이트 패턴 |
Proxy 프록시 패턴 |
3. 행위 패턴 (Behavioral Patterns) :
객체나 클래스 간의 상호작용과 책임 분담에 관한 패턴으로, 시스템의 유연성과 확장성을 높인다.
Observer 옵저버 패턴 | Strategy 전략 패턴 |
Command 커맨드 패턴 | State 상태 패턴 |
Chain of Responsibility 책임 연쇄 패턴 |
Visitor 방문자 패턴 |
Interpreter 인터프리터 패턴 | Memento 메멘토 패턴 |
Mediator 중재자 패턴 | Template Method 템플릿 메서드 패턴 |
Iterator 이터레이터 패턴 |
이러한 디자인 패턴의 장점
- 재사용성 : 반복적인 문제에 대한 일반적인 해결책을 제공하며 이를 재사용하여 코드를 더 쉽게 작성 가능
- 가독성 : 일정한 구조로 정리하기에, 개발자가 코드를 이해하고 유지보수하기 쉬움
- 유지보수성 : 코드를 쉽게 모듈화 할 수 있으며, 수정이 필요한 경우 해당 모듈만 수정하여 유지보수가 쉬움
- 확장성 : 새로운 기능을 추가하거나, 변경할 때 디자인 패턴을 활용하여 기존 코드를 변경하지 않고 새로운 기능 통합
- 안정성과 신뢰성
수많은 디자인 패턴들이 존재하지만 이들 중에서 가장 유명한 GoF 디자인 패턴에 등장하는 23가지 패턴에 대해서 알아보았습니다. 이 디자인 패턴들은 크게 생성, 구조, 행위 패턴으로 분류되고 있습니다.
728x90