2021.05.28 - [Back-End/Java_Spring] - [객체지향] 객체지향 4대 특성 및 5대 원칙
디자인 패턴
디자인 패턴이란?
- 자주 사용하는 설계 패턴을 정형화해서 유형별로 가장 최적의 방법으로 개발 할 수 있도록 정해 둔 설계
- 명확한 정답이 있는 것이 아니고, 프로젝트의 상황에 맞추어 적용 가능
Gof의 디자인 패턴 (Gang of Four)
- 객체 지향 개념에 따른 설계 중 재사용할 경우 유용한 설계를 정리 해둔 것
- 총 23개
- 장점
- 개발자(설계자) 간의 원활한 소통
- 소프트웨어 구조 파악 용이
- 재사용을 통한 개발 시간 단축
- 설계 변경 요청에 대한 유용한 대처
- 단점
- 모든 개발자의 객체지향 설계 / 구현에 대한 이해
- 초기 투자 비용 부담
생성 패턴
- 객체를 생성하는 것과 관련 된 패턴
- 객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화하고 코드의 유연성을 높여 줌
- Factory Method
- Singleton
- Prototype
- Builder
- Abstract Factory
- Chaining - gof에 나오는 것은 아님(lombok을 이용해 설정)
구조 패턴
- 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램 구조를 설계하는 데 활용 될 수 있는 패턴
- 클래스, 객체들의 구성을 통해 더 큰 구조를 만들 수 있게 해줌
- 큰 규모의 시스템에서는 많은 클래스들이 서로 의존성을 가지게 되는데, 이런 복잡한 구조의 개발 및 유지보수를 쉽게 해줌
- Adapter
- Composite
- Bridge
- Decorator
- Facade
- Flyweight
- Proxy
행위 패턴
- 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것
- 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 제공
- 행위 패턴은 행위 관련 패턴을 사용하여 독립적으로 일을 처리하고자 할 때 사용
- Template Method
- Interpreter
- Iterator
- Observer
- Strategy
- Visitor
- Chain of responsibility
- Command
- Mediator
- State
- Memento
반응형
'공부 기록' 카테고리의 다른 글
[디자인패턴] 프록시 패턴(Proxy Pattern) _ AOP (0) | 2021.06.03 |
---|---|
[디자인패턴]싱글톤 패턴(Singleton Pattern), 어댑터 패턴(Adapter Pattern) (0) | 2021.05.28 |
[객체지향] 객체지향 4대 특성 및 5대 원칙 (0) | 2021.05.28 |
[JS] Ajax를 Axios로 변환하기 (0) | 2021.05.25 |
[JAVA] ibatis를 mybatis로 변환하기 (0) | 2021.05.24 |
댓글