디자인 패턴을 사용하는 이유
프로그램을 개발하는 과정에서 빈번하게 발생하는 디자인상의 문제를 정리해서, 상황에 따라 간편하게 적용해서 사용할 수 있는 패턴 형태로 만든 것이다.
디자인 패턴의 종류
- Strategy pattern
교환가능한 행동을 캡슐화하고 위임을 통해서 어떤 행동을 사용할지 결정한다.
- Observer pattern
상태가 변경되면 다른 객체들에게 연락을 돌릴 수 있게 한다.
- Decorator pattern
객체를 감싸서 새로운 행동을 제공한다.
- Factory pattern
생성할 구상 클래스를 서브 클래스에서 결정한다.
- ? AbstractFactory pattern
클라이언트에서 구상 클래스를 지정하지 않으면서도 일군의 객체를 생성할 수 있도록 한다.
- Singlton pattern
딱 한객체만 생성되도록 한다.
- Command pattern
요청을 객체로 감싼다.
- Adaptor pattern
객체를 감싸서 다른 인터페이스를 제공한다.
- Facade pattern (퍼사드 패턴)
일련의 클래스에 대해서 간단한 인터페이스를 제공한다.
- Template method pattern
알고리즘 개별 단계를 구현하는 방법을 서브클래스에서 결정한다.
- Iterator pattern
컬렉션이 어떤 형태로 구현되어있는지 드러내지 않으면서, 컬렉션 내에 있는 모든 객체에 대해 반복작업을 처리할 수 있게한다.
- Composite pattern
클라이언트에서 객체 컬렉션과 개발 객체를 똑같이 다룰 수 있도록 한다.
- State pattern
알고리즘의 개별 단계를 구현하는 방법을 서브 클래스에서 결정한다.
- Proxy pattern
객체를 감싸서 그 객체에 대한 접근을 제어한다.
- Compound pattern
반복적으로 생길 수 있는 일반적인 문제를 해결하기 위한 용도로 두 개 이상의 패턴을 결합해서 사용하는 것.
- Bridge Pattern
구현 뿐만 아니라 추상화된 부분까지 변경시켜야 하는 경우
- Builder Pattern
제품을 여러 단계로 나눠서 만들 수 있도록 제품 생산 단계들을 캡슐화 할 때
- ? Chain of responsibility pattern
한 요청을 두 개 이상의 객체에서 처리하고 싶을 때
- Flyweight pattern
어떤 클래스의 인스턴스 한 개만 가지고 여러 개의 "가상 인스턴스"를 제공하고 싶을 때
- Interpreter pattern
어떤 언어에 대한 인터프리터를 만들 때
- Mediator pattern
서로 관련된 객체 사이의 복잡한 통신과 제어를 한 곳으로 집중시키고자 할 때
- Memento pattern
객체를 이전의 상태로 복구시켜야 하는 경우
- Prototype pattern
어떤 클래스의 인스턴스를 만드는 것이 자원/시간을 많이 잡아먹거나 복잡한 경우
- Visitor pattern
다양한 객체에 새로운 기능을 추가해야 하는데 캡슐화가 별로 중요하지 않은 경우
References
- 자세한 디자인 패턴 설명 : https://jusungpark.tistory.com/category/DesignPattern?page=1
- 디자인 패턴 종류 : https://hyeonstorage.tistory.com/99
'개발관련 > JAVA' 카테고리의 다른 글
JAVA) 프록시 & HTTPS (0) | 2021.11.15 |
---|---|
JAVA) apache poi - SXSSF NullPointer Exception 오류 해결방법 (0) | 2021.08.02 |
JAVA) apache poi, 엑셀 파일 생성 및 다운로드 하기 (0) | 2021.06.26 |
JAVA) 배포란 무엇이고 어떻게 할까? jar? war? (0) | 2020.07.02 |
JAVA) 자바의 작동 원리 (0) | 2019.07.15 |
댓글