코드 그라데이션

AppConfig 리팩터링 본문

Spring/핵심 원리 구현

AppConfig 리팩터링

완벽한 장면 2024. 1. 16. 19:07

AppConfig 리팩터링

현재 AppConfig를 보면 중복이 있고, 역할에 따른 구현이 잘 보이지 않는다.

 

 

기대하는 그림

 

 

AppConfig 리펙토링

// 애플리케이션의 전체 동작 방식을 구성(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();
    }
}

728x90
Comments