본문 바로가기
개발관련/JAVA

JAVA) 디자인 패턴 Design Pattern

by joa-yo 2019. 11. 26.
반응형

디자인 패턴을 사용하는 이유

프로그램을 개발하는 과정에서 빈번하게 발생하는 디자인상의 문제를 정리해서, 상황에 따라 간편하게 적용해서 사용할 수 있는 패턴 형태로 만든 것이다.

 

디자인 패턴의 종류

- 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

 

반응형

댓글