Open leeyuunsung opened 2 years ago
// Collections가 제공하는 데코레이터 메소드
ArrayList list = new ArrayList<>();
list.add(new Book());
List books = Collections.checkedList(list, Book.class);
list.add(new Item());
books.add(new Item()); // Occurred TypeCastingException
데코레이터 패턴 1부 - 패턴 소개
데코레이터 패턴이 필요한 예
Client
는 Comment 에 대한 필터링 기능을 주입받아 적용됨http
에 대한 필터링이 됨...
에 대한 필터링이 됨데코레이터 패턴 아키텍처
Component
라는 클라이언트가 사용하는 인터페이스가 존재하고,ConcreteComponent
와Decorator
는 둘 다Component
를 구현하고 있음Decorator
는ConcreteComponent
를 필드로 두고 감싸서(wrappee) 사용하는 식데코레이터 패턴 2부 - 패턴 적용하기
main
CommentService (Interface)
CommentDecorator (Concrete class)
DefaultCommentService (Concrete class)
SpamFilteringCommentDecorator (Concrete class)
TrimmingCommentDecorator (Concrete class)
Decorator
의 연관 관계를 설정