티스토리 뷰
새로운 구조와 할인 정책 적용
- 정액 할인 정책을 정률% 할인 정책으로 변경해보자.
 - FixDiscountPolicy => RateDiscountPolicy
 
AppConfig의 등장으로
애플리케이션이 크게 사용 영역과, 객체를 생성하고 구성(Configuration)하는 영역으로 분리되었다.
그림 - 사용, 구성의 분리

그림 - 할인 정책의 변경


변경한 코드
// 애플리케이션의 전체 동작 방식을 구성(config)하기 위해, 구현 객체를 생성하고, 연결하는 책임을 가지는 별도의 설정 클래스
public class AppConfig {
    //역할들을 드러나게 바꾼다!
    // ctrl alt M
    public MemberService memberService() {
        return new MemberServiceImpl(memberRepository());
    }
    public OrderService orderService() {
        return new OrderServiceImpl(memberRepository(), discountPolicy());
    }
    public MemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }
    public DiscountPolicy discountPolicy() {
//        return new FixDiscountPolicy();
        return new RateDiscountPolicy();
    }
}

728x90
    
    
  반응형
    
    
    
  '[개발] - Spring > 핵심 원리 구현' 카테고리의 다른 글
| 좋은 객체지향 설계의 5가지 원칙 적용하기 (0) | 2024.01.18 | 
|---|---|
| 지금까지의 전체 흐름 정리 (1) | 2024.01.17 | 
| AppConfig 리팩터링 (0) | 2024.01.16 | 
| 관심사의 분리 (1) | 2024.01.16 | 
| 새로운 할인 정책 적용과 문제점 (0) | 2024.01.15 | 
 
                            Comments