728x90
반응형
Java
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponseWrapper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DecoratorInJava {
public static void main(String[] args) {
// Collections가 제공하는 데코레이터 메소드
ArrayList list = new ArrayList<>();
list.add(new Book());
List books = Collections.checkedList(list, Book.class);
// books.add(new Item());
List unmodifiableList = Collections.unmodifiableList(list);
list.add(new Item());
unmodifiableList.add(new Book());
// 서블릿 요청 또는 응답 랩퍼
HttpServletRequestWrapper requestWrapper;
HttpServletResponseWrapper responseWrapper;
}
private static class Book {
}
private static class Item {
}
}
- 타입 체크를 해주는 것들
- 어댑터패턴도 어찌보면 데코레이터임
- 현재 books.add(new Item()); 이렇게만 하면 에러 생김 타입을 체크하기 때문에
- unmodifiavleLsit()있고,
- 서블릿에서 있는것도 일종의 데코레이터...
Spring
import org.springframework.beans.factory.xml.BeanDefinitionDecorator;
import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
import org.springframework.http.server.reactive.ServerHttpResponseDecorator;
import org.springframework.web.server.WebFilter;
public class DecoratorInSpring {
public static void main(String[] args) {
// 빈 설정 데코레이터
BeanDefinitionDecorator decorator;
// 웹플럭스 HTTP 요청 /응답 데코레이터
ServerHttpRequestDecorator httpRequestDecorator;
ServerHttpResponseDecorator httpResponseDecorator;
}
}
- 빈 설정은 거의 쓸일 없고
- 웹플럭스는 사용함
- 웹필터를 상속해서 만들어서 감싸서 담아주는 것인데
- 우리가 만든 하위 클래스로 가서 처리를 할 수 있음
- WebFilter도 비슷하게 사용함
GitHub - 3DPIT/study
Contribute to 3DPIT/study development by creating an account on GitHub.
github.com
728x90
반응형
'CS Study > 디자인패턴' 카테고리의 다른 글
22.02.20_전략패턴-패턴적용하기 (0) | 2022.02.21 |
---|---|
22.02.20_전략패턴-패턴소개 (0) | 2022.02.20 |
2021.12.11_데코레이터패턴03.장점과단점 (0) | 2021.12.11 |
2021.12.11_데코레이터패턴02.패턴적용하기 (0) | 2021.12.11 |
2021.12.11_데코레이터패턴01.패턴소개 (0) | 2021.12.11 |
댓글