강의 내용중 궁금한 점 질문드립니다.
140
작성한 질문수 31
//==생성 메서드==//
public static OrderItem createOrderItem(Item item, int orderPrice, int count) {
OrderItem orderItem = new OrderItem();
orderItem.setItem(item);
orderItem.setOrderPrice(orderPrice);
orderItem.setCount(count);
item.removeStock(count);
return orderItem;
}이러한 생성메서드는 언제 사용하는건가요?
코드를 분석해보니 연관관계에서 다 대 1인 케이스에서, '다'쪽에서 생성 메서드를 사용하는 것 같은데 맞나요?
감사합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
whdk333님, 질문하신 생성 메서드 사용 상황에 대해 답변드립니다.
주로 생성 메서드는 도메인 모델에서 객체를 생성할 때 초기화 로직이 복잡하거나, 여러 단계의 설정이 필요할 때 사용합니다. 특정 클래스의 인스턴스를 생성하고 초기화하는 과정을 캡슐화하여, 사용하는 측면에서는 객체 생성 시 필요한 세부 구현을 몰라도 되는 편리함을 제공합니다. 보통은 이런 팩토리 메서드 패턴이나 빌더 패턴과 유사한 방식으로 적용됩니다.
whdk333님이 말씀하신대로, 연관관계가 있는 경우, 특히 ‘다’쪽에서 ‘1’쪽의 객체와의 관계를 설정하며 생성하는 경우에 이러한 생성 메서드를 효과적으로 사용할 수 있습니다. 이러한 방법은 객체간의 관계를 명확하게 설정할 수 있도록 도와줍니다. 즉, 연관관계를 설정할 때 초기화 로직이 복잡하거나, 기본 생성자만 사용하여 객체를 만든 후 필드를 설정하는 것보다 객체의 일관성과 안전성을 보장할 수 있습니다.
따라서, 제시해주신 코드에서도 OrderItem 객체를 안전하게 생성하면서, 관련된 Item 객체의 상태도 함께 업데이트(재고 감소)하는 등의 작업을 수행하고 있어, 이러한 생성 메서드의 효율적인 사용 사례로 볼 수 있습니다.
감사합니다.
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
0
11
1
servlet과 container에 대한 질문입니다
0
21
1
RepositoryTest의 패키지 위치가 domain인 이유
0
22
2
도메인 모델에서 관계와 규칙을 구분하는 방법
0
35
2
UserService, CertificationService 책임 분리 기준 질문
0
23
1
spring initialiser 어떤걸 선택해야될지 모르겠어요
0
31
2
구현체가 동적으로 정해질 때, 팩토리 기법을 사용하나요?
0
47
2
Json 요청 처리
1
28
2
로그아웃-logout()-2 강에서 겟방식 로그아웃 호출 후 화면이동 질문입니다.
0
25
2
Build 관련 문제 (테스트 관련 문제)
0
38
2
job, step execution 관련 질문 드립니다.
0
27
2
이미지 업로드와 db 트랜잭션 묶는법
0
40
1
sdk 설정 오류
0
46
2
Orchestration SAGA 패턴 보상에 대한 질문입니다.
0
49
2
[건의][6장][작전1] deprecated 메소드
1
44
2
[예제][3장][작전2] windows 에서 마지막 예제
0
37
1
NaverBookRepository.class 의 위치에 따른 모듈간의 의존성에 대해 질문드립니다.
1
30
2
Could not resolve org.springframework.boot:spring-boot-starter-validation:2.4.4
0
45
2
REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!
0
27
1
패키지 vs 모듈 선택 기준
0
49
2
오탈자 - @Transactional
0
53
1
타입스크립트
0
44
1
인덱스 관련 질문 있습니다.
0
64
2
..
0
74
2





