코딩 기록들
스프링 입문 2. 디자인패턴이란? 본문
디자인패턴이란?
- 자주 사용하는 설계패턴을 정형화해서 유형별로 최적의 방법으로 개발할수있도록 정해둔 설계 알고리즘과 유사함.
- 명확하게 정답이있는 형태는 아니며, 프로젝트 상황에맞춰 적용가능
Gof 디자인패턴 (Gang of Four)
- 객체지향 개념에 따른 설계중 재사용할경우 유용한 설계를 미리 디자인패턴으로 정리해 둔 것
- 총 23개로 구성됨
디자인패턴 장점
- 개발자간의 원활한 소통이 가능
- 소프트웨어 구조파악 용이
- 재사용을 통한 개발시간 단축
- (enterprise 확장시)설계변경 요청에 대한 유연한 대처 가능
디자인패턴 단점
- 객체지향 설계및 구현
- 초기투자(인터페이스및 구조의 설계및 코딩) 비용 부담
23개의 디자인패턴 분류
1. 생성 패턴
- 객체를 생성하는것과 관련된 패턴
- 객체의 생성과 변경이 전체시스템에 미치는 영향을 최소화하고, 코드의 유연성을 높여줌
- factory method
- singleton
- prototype
- builder
- abstract factory
- Chaining(Gof디자인패턴은 아님)
2. 구조 패턴
- 프로그램 내 자료구조나 인터페이스구조 등 프로그램 '구조'를 설계하는데 활용될수있는 패턴클래스
- 객체들의 구성을 통해 더 큰 구조를 만들 수 있게 해줌
- 큰규모 시스템에서 많은 클래스들이 의존성가지게 되는데, 이런 복잡한구조의 개발을 쉽고 유지보수하기 쉽게 만들어줌
- Adapter
- Composite
- Bridege
- Decorator
- Facade (파사드)
- Flyweight
- Proxy
3. 행위 패턴
- 반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것
- 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법 제공
- 행위관련 패턴을 사용하여 독립적으로 일을 처리하고자 할 때 사용
- Template Method
- Interpreter - 반복할때 사용
- Iterator
- Observer
- Strategy (디자인 패턴의 꽃)
- Visitor
- Chain of responsibility
- Command
- Mediator
- State
- Memento
'스프링 입문' 카테고리의 다른 글
스프링 입문 2.2 프록시(Proxy), 데코레이터(Decorator) 패턴 (0) | 2023.12.30 |
---|---|
스프링 입문 2.1 싱글톤(singleton) 패턴 & 어댑터(adapter) 패턴 (1) | 2023.12.26 |
스프링 입문 1.3 POJO JAVA (1) | 2023.12.26 |
스프링 입문 1.2 객체지향 설계 5원칙 (0) | 2023.12.26 |
스프링 입문 1.1 객체지향에 대하여 (0) | 2023.12.25 |