본문 바로가기
반응형

Design Pattern4

[디자인 패턴] 전략(Strategy) 패턴 전략패턴은 (기능을 가지고 있는)컨텍스트에서 알고리즘(전략)을 별도로 분리하는 설계 방법이다. @Service public class TicketSeller { @Transactional public CreateReservationResponse createReservation(CreateReservationRequest dto) { //예약 가능한 좌석인지 확인 performanceSeatInfo.isReserve(ReserveStatus.ENABLE); } } 전략패턴에 집중하기 위해 어노테이션, 기타 코드는 생략하였다. TicketSeller는 공연에 대한 비즈니스 로직을 처리하는 서비스이다. @Entity public class PerformanceSeatInfo extends BaseEntity.. 2024. 2. 8.
Why & How to use Builder Pattern, good things Why use Builder Pattern : Making constructor is cumbersome. When collaborating with other developers, multiple constructors can lead to confusion about which constructor to use. Even if made constructor, some values could be null. It is cumbersome to put null. Builder Pattern's Good things: It is easy to make constructor. You don't have to think what values' order, neither what values to put Bui.. 2022. 11. 27.
빌더 패턴(Builder Pattern) 쓰는 이유, 장점, 단점, 사용법 빌더 패턴을 쓰는 이유: 생성자를 여러개 만들기 번거러움, 다른 개발자와 협력할 때 생성자가 여러개면 어떤 생성자를 써야할지 헷깔릴 수 있음, 생성자를 만들어도 null 값을 일일이 넣어야할 경우가 있을 수 있는데 번거러움 빌더 패턴 장점: 생성자 만들기 편함 생성자 만들때 어떤 값을 넣을지 순서는 어떻게 할지 고려하지 않아도 됨 빌더 패턴 단점: 없는듯 빌더패턴 사용법(스프링): 1. 롬복(lombok) 설정 2. @SuperBuilder 어노테이션 사용 @Builder가 아닌 @SuperBuilder를 쓰는 이유 -> 부모인 BaseEntity를 상속받는 자식 객체인 Chef를 만들기 위함 -> 부모객체의 값도 입력하게 하기 위함 @Entity @Getter @AllArgsConstructor @No.. 2022. 11. 27.
[디자인 패턴] CQS(Command Query Separation) Pattern CQS(Command Query Separation) Pattern은 소프트웨어 디자인 패턴 중 하나이다. 다음과 같은 이유로 나눈다. Command: 객체의 내부 상태를 바꾼다.(생성, 수정, 삭제) Query: 객체의 값만 반환한다.(조회) 예시로 Product 도메인에 대해서 서비스를 ProductCommandService, ProductQueryService로 나눈다. 예시 코드 ProductCommandService 어노테이션 @Transactional Command: 객체의 내부 상태를 바꾼다.(생성, 수정, 삭제) @Service @Transactional @RequiredArgsConstructor public class ProductCommandService { private final .. 2022. 11. 3.

반응형
반응형