티스토리 뷰
Decorator, Adapter, Facade 패턴은 서로 비슷한 점을 가진 디자인 패턴입니다.
세 패턴 모두 새로운 클래스로 기존의 클래스를 감싸는 방식이라는 공통점이 있습니다.
기존 코드를 감싸는 방식은 상속이 아닌 구성(프로퍼티로 기존의 클래스의 인스턴스를 가지고 있음)을 사용합니다.
서로 비슷한 이 패턴들의 차이점을 정리해 보도록 하겠습니다.
- Decorator 패턴
기존 클래스를 감싸지만, 인터페이스는 그대로 유지하면서 새로운 기능을 추가하는 방식입니다.
http://haloper.tistory.com/11
- Adapter 패턴
기존 클래스의 인터페이스를 새로운 인터페이스로 변경할 때 사용합니다.
기존의 개발된 클래스를 다른 인터페이스를 사용하는 클라이언트에서 사용 가능하도록
중간에서 인터페이스를 변환해 주는 것이 주 목적입니다.
어뎁터 클래스는 내부에 기존 클래스를 가지고 있고,
새로 적용하고자 하는 인터페이스의 각 메소드 호출 시 마다
기존 인터페이스의 매핑되는 메소드를 호출해 주는 방식입니다.
- Facade 패턴
Adapter 패턴이 기존의 인터페이스를 새로운 인터페이스로 1:1 변환 시켜주는 패턴이였다면,
Facade 패턴은 하나의 복잡한 시스템(여러 클래스들로 구성된 로직)을
사용자에게 필요한 간소화된 인터페이스로 감싸주는 방식입니다.
사용자는 기존 시스템의 복잡한 클래스 관계를 알 필요 없이,
Facade 클래스가 제공해 주는 인터페이스만 사용하여 쉽게 시스템을 사용할 수 있습니다.
'개발 > Java' 카테고리의 다른 글
Static factory method (0) | 2016.05.01 |
---|---|
Spring Value Annotation 사용시 참고 사항 (0) | 2016.04.17 |
디자인 패턴 - Command Pattern (0) | 2016.03.29 |
디자인 패턴 - Singleton Pattern (0) | 2016.03.22 |
Jenkins + Git Timeout 설정 변경 방법 (0) | 2016.03.19 |