티스토리 뷰

디자인 패턴이란?

디자인 패턴은 자주 접하는 설계 문제를 해결해주는 증명된 솔루션을 체계적으로 정리한 것으로, 다양한 분야의 객체지향 프로그램을 설계하는 과정에서 자주 반복되는 설계 문제를 해결해준다.

 

Gof(Gang of Four) 디자인 패턴

기존의 경험은 소프트웨어를 설계할때 매우 중요한 역할을 한다. 하지만 모든 사람들이 다양한 경험을 가지고 있을수는 없기 때문에 이러한 지식을 공유하기 위해 나온것이 Gof 디자인 패턴이다. Gof 디자인 패턴은 총 23가지 디자인 패턴을 정리하고 생성, 구조, 행위 3가지로 분류하였다.

생성 패턴 구조 패턴 행위 패턴
- Factory Method
- Singleton
- Prototype
- Builder
- Abstract Factory
- Chaining
- Adapter
- Composite
- Bridge
- Decorator
- Facade
- Flyweight
- Proxy
- Template Method
- Interpreter
- Iterator
- Observer
- Strategy
- Visitor
- Chain of responsibility
- Command
- Mediator
- State
- Memento

Gof 디자인 패턴의 3가지 분류

생성 패턴

  • 객체를 생성하는 것과 관련된 패턴으로 객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화하고 코드의 유연성을 높여준다.

구조 패턴

  • 더 큰 구조를 형성하기 위해 클래스, 객체들을 어떻게 구성하고 합성할지 정하는데 활용할수 있는 패턴으로 복잡한 구조를 개발과 유지보수를 쉽게 만들어 준다.

행위 패턴

  • 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로, 객체나 클래스의 유형을 정의하는 것이 아니라 클래스 사이의 책임과 협력에 대한 유형을 제시한다.

 

주요 디자인 패턴 

싱글톤(Singleton) 패턴

  • 어떠한 객체(클래스)가 유일하게 1개만 존재해야 할때 사용하는 패턴이다. 서로 자원을 공유 해야할때 사용되며 TCP Socket 통신이나 DB 접속을 위해 사용하는 connect 객체에 주로 사용된다.

어댑터(Adapter) 패턴

  • 호환성이 없는 기존 클래스의 인터페이스를 변환하여 재사용 할 수 있도록 하는 패턴.

프록시(Proxy) 패턴

  • 복잡하거나 생성하는 데 시간이 오래 걸리는 객체를 좀 더 간단한 객체로 표현하기 위해 그 객체가 필요할 때까지 생성을 보류하는 디자인 패턴. 프록시 클래스가 대리인 역할로 대신 일을 처리하며 해당 객체가 필요할 때까지 생성을 지연시킨다.

데코레이터(Decorator) 패턴

  • 기존 구조는 유지하면서 기능을 추가하거나 필요한 형태로 꾸밀 때 사용하는 패턴으로 확장이 필요한 경우 상속의 대안으로 사용되기도 한다.

옵저버(Observer) 패턴

  • 특정 데이터나 객체를 모니터링하고 있다가 변화가 발생하면 시스템에 이를 알리고 연관된 객체들이 변화에 대응하는 작업을 실행하도록 만드는 패턴이다.

파사드(Facade) 패턴

  • 서브시스템 내부가 복잡하여 클라이언트 코드를 사용하기 힘들때 사용하는 디자인 패턴으로 간단한 인터페이스만 알아도 서브시스템의 주요 기능을 사용할 수 있도록 해주는 역할을 한다.

전략 패턴(Strategy) 패턴

  • 유사한 행위들을 캡슐화하여 객체의 행위를 바꾸고 싶은 경우 직접 변경하는 것이 아닌 전략만 변경하여 유연하게 확장하는 디자인 패턴.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함