티스토리 뷰
반응형
Proxy Pattern vs Decorator Pattern
- 두 패턴 모두 기존에 존재하는 객체의 동일한 인터페이스를 이용해서 다양한 행동을 추가하기 위한 의도를 가지고 있다.
- Ex. MyClass라는 객체에 doAction()이라는 메소드가 있을 시, 다른 객체에서도 동일한 시그니처의 doAction() 메소드를 호출하여
MyClass의 doAction()을 실행하는 동시에 다른 행동을 추가해주는 것이다.
- Ex. MyClass라는 객체에 doAction()이라는 메소드가 있을 시, 다른 객체에서도 동일한 시그니처의 doAction() 메소드를 호출하여
- 이런 측면으로 보면, 두 패턴이 동일하게 보일 수 있지만 '의도'에는 미묘한 차이가 있다.
- Proxy는 추가적인 '컨트롤'을 제공하는 것이고, Decorator는 추가적인 '기능'을 제공하는 것이다.
Decorator
- MyClass 객체의 doAction()이 'mesung'을 출력하는 것이라면, 데코레이터 역할의 MySubClass 객체의 doAction()에서는
MyClass 객체의 doAction()을 호출하여 "mesung"을 출력하는 동시에 그 위 아래로 추가적인 기능("open", "close")을 처리해주는 것이다. - 즉, 주요 기능에 부가적인 기능을 추가해주는 것이 데코레이터의 의도이다.
Proxy
-
MyClass 객체의 doAction()이 "mesung"을 현재 로컬에 출력하는 것이라면, Proxy 역할의 MySubClass 객체의
doAction()는 "mesung"을 Remote 컴퓨터로 보내서 출력해주는 역할을 하는 것이다. -
즉, 주요 기능에 부가적인 기능을 추가해주는 것이 아니라, 주요 기능을 다양한 방식으로 컨트롤 해주는 역할을 하는 것이다.
- 외부로 보내든지, laze initailization을 한다든지, cache 된 것을 사용한다든지..!
- 그림으로 보듯이 서로 구조는 같다. 다만 의도에 따라 나뉜다는 점을 명시해야 한다.
https://hamait.tistory.com/868
꼬리에 꼬리를 무는 - 유사 디자인 패턴들 - (1,2)
꼬리에 꼬리를 무는 - 유사 디자인 패턴들 (1/2편) 패턴을 공부하거나 할 때 UML 에 집중해서 공부하면 안된다고 생각한다. 구조만을 외우고 구조로 구분을 한 사람은 공부한것을 금방 까먹거나 헤깔려하기 쉽기..
hamait.tistory.com
반응형
'Java > Java 기초' 카테고리의 다른 글
[Java 기초] 프록시 패턴 보충_Adapter Pattern vs Bridge Pattern (0) | 2020.04.19 |
---|---|
[Java 기초] Java의 Collection (0) | 2020.04.08 |
[Java 기초] Error와 Exception (0) | 2020.03.30 |
[Java 기초] 다이나믹 프록시 정리 (0) | 2020.03.30 |
[Java 기초] 클래스의 프록시 (0) | 2020.03.30 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ifPresent
- package-private
- 연관관계
- try catch finally
- springboot
- Spring
- mustache
- 복사 팩토리
- java
- Effective Java
- effectivejava
- 정적팩터리메서드
- junit
- 스프링부트
- flatMap
- 인프런
- 빈 순환 참조
- 점층적 생성 패턴
- 이펙티브자바
- 생성자
- 팩토리 메소드 패턴
- 자바8
- try with resources
- 이펙티브 자바
- 김영한
- JPA
- @Lazy
- java8
- jdk버전
- 빌더 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함