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