티스토리 뷰

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함