'객체지향' 태그의 글 목록 (4 Page)
본문 바로가기
728x90
반응형

객체지향40

22.01.29_[04DDD]부자연스러움을해결하는도메인서비스 도메인 개념을 녹이고 값 객체나 엔티티의 행동으로 구현하려면 어딘가 어색한 부분이 생기는 경우가 있음 이 어색한 느낌은 특히 도메인에서 일어나는 활동을 코드로 옮겼을때 자주 나타남 어색한 것을 해결하지 않고, 값 객체의 행동을 억지로 구현하면 객체의 책임이 왜곡될 수 있음 해결책은 어색한 느낌을 낳는 이 행동을 별도의 객체로 분리해 정의하는 것 그것이 도메인 서비스이다. 1. 서비스란? 소프트웨어 개발에서 말하는 서비스는 클라이언트를 위해 무언가를 해주는 객체를 말함 너무 광범위하기도 하고 도메인 주도 설계에만 초점을 맞춰도 서비스가 들어간 용어끼리 의미가 서로 다른 경우도 있어서 상당히 큰 혼란을 야기한다. 1.1 도메인 주도 설계에서 말하는 서비스 크게 두가지로 나뉜다. 첫 번째 도메인을 위한 서비스.. 2022. 1. 29.
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.
728x90
반응형