디자인패턴 한줄 정리
요즘 스터디를 통해서 디자인 패턴을 정리하고 있다. 진도를 하나하나 나가기전에 전체적으로 간략하게 정리를 해보았다. 학습한 패턴은 이해가 잘되었지만, 아직 학습하지 못한 패턴은 개념이 잘 안잡혔다. 열심히 해서 다 정리하는 그날까지! 아자아자!!
1. 객체생성에 관한 패턴
- Object Pool Pattern : DB 커넥션 풀이 대표적이다.
- Prototype Pattern : 객체생성비용이 많이 들 경우 복사해서 인스턴스를 만든다.
- Factory Method Pattern : 인스턴스 작성을 하위클래스에 위임하는 패턴 (추상클래스에서는 create만 구현되고 나머지는 상속받아서 상세 구현한다.)
- Builder Pattern : 복잡한 인스턴스를 조립한다. ( 메인에서 조립구현체를 넘기고 builder 패턴(순서)에 의해 객체가 구현됨)
- Factory Pattern
- Abstract Factory Pattern : 관련된 부품을 조립해서 제품을 만든다.
- Singleton Pattern : 단하나의 인스턴스
2. 행동에 관한 패턴
- Memento Pattern : 상태를 보존한다. ( undo, redo, history, snapshot 기능)
- Mediator Pattern : 상대는 하나뿐 (중간에 중재자를 두어 여러상태를 통제한다)
- Observer Pattern : 상태의 변화를 통지한다. ( 옵져버를 추가하고,, 통지한다 )
- Null Object Pattern
- Visitor Pattern : 구조안을 돌아다니면서 일을 한다. ( 자료구조와 비지니스 로직을 분리한다.)
- Interpreter Pattern : 문법 규칙을 클래스로 표현한다.
- Iterator Pattern : 하나씩 열거하면서 처리한다. ( hasnext(), next() )
- Strategy Pattern : 알고리즘을 모두 교체하다.
- Command Pattern : 명령을 클래스로 만든다.
- Template Method Pattern : 구체적인 처리를 하위클래스에 위임.
- Chain of Responsibility Pattern : 책임 떠넘기기
3. 구조에 관한 패턴
- Adapter : 필요한 형태로 수정해서 재활용한다.
- Bridge : GUI계층과 비지니스로직을 분리한다.
- Composite : 재귀적인 구조를 만드는 패턴(폴더구조)
- Decorator : 객체에 데코레이션(장식)을 하나씩 해나가는 디자인 패턴(재귀이용)
- Flyweight : 동일한것을 공유하여 낭비를 없앤다. (메모리 사용량을 줄이는 패턴)
- Proxy : 대리인의 객체를 만드는 패턴, 필요할때 실제 객체를 생성하는 패턴 or 추가적인 작업이 필요할때 Spring AOP
프로그램을 공부하는 여러분들에게 많은 도움이 되길 바라며, 잘못된점은 얼마든지 지적 부탁드립니다. 감사합니다.
ps/ 1주일에 하나의 패턴씩 정리해서 올리는 중입니다.
[참고사이트]