'데코레이터' 태그의 글 목록
본문 바로가기
728x90
반응형

데코레이터6

2021.12.11_테코레이터패턴04.자바와스프링에서찾아보는패턴 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, Boo.. 2021. 12. 11.
2021.12.11_데코레이터패턴03.장점과단점 기존 코드 변경하지 않고 부가 기능 추가하는 패턴 장점 새로운 클래스를 만들지 않고 기존 기능을 조합할 수있음 컴파일 타임이 아닌 런타임에 동적으로 기능을 변경할 수 있음 조합을 할때 플래그를 사용해서 구분을 함 값에 따라서 그전에 플래그가 바뀌면 기능의 조합을 동적으로 할 수 있음 기존의 코드는 바뀌지 않고 기능을 확장할 수있는 open Close 법칙이 적용됨 클라이언트가 인터페이스 사용 (의존성 역전 법칙) solid의 대부분 적용된 패턴임 단점 데코레이터를 조합하는 코드가 복잡할 수 있음 after의 코드가 늘어남 대신 상속보다는 좀 덜하지만 굳이 따지자면 인터페이스랑 데코레이터를 만든것이 정적으로 들어난것임, 너무 큰 단점은 아님 https://github.com/3DPIT/study/blob/.. 2021. 12. 11.
2021.12.11_데코레이터패턴02.패턴적용하기 CommentService public interface CommentService { void addComment(String comment); } 코멘트를 추가한 인터페이스 하나 추가 DefaultCommentService public class DefaultCommentService implement CommentService{ @Override public void addComment(String comment){ System.out.println(comment); } } CommentDecorator public class CommentDecorator implements CommentService{ private CommentService commentService; public Comment.. 2021. 12. 11.
2021.12.11_데코레이터패턴01.패턴소개 기존에 있는 코드를 변경하지 않고 부가적인 기능 추가할 수 있는 구조적인 패턴 원하는 부가 기능 런타임에 다이나믹 하게 추가 스태틱하게 컴파일 타임에 아니구....(정적) 유연하게 라면 런타임에 변경 할 수 있음 런타임의 기본을 확장하는 개념임 코드 pulic class Client{ private Client(CommentService); public Client (CommentService commentService){ this.CommentService = commentService; } private void writeComment(String comment){ Comment.Service.addComment(comment); } publiv static void main(String[] args.. 2021. 12. 11.
728x90
반응형