본문 바로가기

Spring106

[스프링 핵심 원리 - 기본편] 주문과 할인 도메인 실행과 테스트 주문과 할인 정책 실행 import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.Order; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; public class OrderApp { public static void main(String[] args) { MemberService memberService = new MemberServiceImpl(); Order.. 2021. 9. 8.
[스프링 핵심 원리 - 기본편] 주문과 할인 도메인 개발 할인 정책 인터페이스 import hello.core.member.Member; public interface DiscountPolicy { /** * @return 할인 대상 금액 */ int discount(Member member, int price); } (DiscountPolicy.java) 정액 할인 정책 구현체 import hello.core.member.Grade; import hello.core.member.Member; public class FixDiscountPolicy implements DiscountPolicy { private int discountFixAmount = 1000; // 1000원 할인 @Override public int discount(Member membe.. 2021. 9. 8.
[스프링 핵심 원리 - 기본편] 주문과 할인 도메인 설계 주문 도메인 전체 역할과 구현을 분리해서 자유롭게 구현 객체를 조립할 수 있게 설계했습니다. 덕분에 회원 저장소는 물론이고, 할인 정책도 유연하게 변경할 수 있습니다. 주문 도메인 객체 다이어그램1 회원을 메모리에서 조회하고, 정액 할인 정책(고정 금액)을 지원해도 주문 서비스를 변경하지 않아도 됩니다. 역할들의 협력 관계를 그대로 재사용 할 수 있습니다. 주문 도메인 객체 다이어그램2 회원을 메모리가 아닌 실제 DB에서 조회하고, 정률 할인 정책(주문 금액에 따라 % 할인)을 지원해도 주문 서비스를 변경하지 않아도 됩니다. 협력 관계를 그대로 재사용할 수 있습니다. 참조 스프링 핵심 원리 - 기본편 2021. 9. 8.
[스프링 핵심 원리 - 기본편] 회원 도메인 실행과 테스트 회원 도메인 - 회원 가입 main import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; public class MemberApp { public static void main(String[] args) { MemberService memberService = new MemberServiceImpl(); Member member = new Member(1L, "memberA", Grade.VIP); memberService.join(member); Member findMember = member.. 2021. 9. 8.