package hello.core.order;
import hello.core.discount.DiscountPolicy;
import hello.core.member.Member;
import hello.core.member.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
@Override
public Order createOrder(Long memberId, String itemName, int itemPrice) {
Member member = memberRepository.findById(memberId);
int discountPrice = discountPolicy.discount(member, itemPrice);
return new Order(memberId, itemName, itemPrice, discountPrice);
}
//테스트 용도
public MemberRepository getMemberRepository(){
return memberRepository;
}
}
-> @RequiredArgsConstructor 어노테이션은 final이 붙은거를 생성자를 자동으로 만들어줌
ex)
@Autowired
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
'backend > 스프링' 카테고리의 다른 글
[Spring] Requset 메소드 사용하기 (0) | 2021.07.05 |
---|---|
[Spring] 개발환경에서 http 로그 자세히 보기 (0) | 2021.07.05 |
[INTELI J] 롬복 설치 (0) | 2021.06.16 |
객체 지향 설계와 스프링 (0) | 2021.06.05 |
좋은 객체 지향 설계의 5가지 원칙 (SOLID) (0) | 2021.06.05 |