AppConfig 의 역할

wangjh789·2022년 7월 22일
0

AppConfig가 등장하면서 구성을 변경하기 위해 내부의 코드를 수정하지 않아도 된다.

사용 영역과 구성 영역으로 분리되었다.

사용 영역 : 객체의 로직이 쓰이는 영역

구성 영역 : 객체의 생성과 구성하는 영역

구성한다는 의미는 인터페이스의 구현체들 중 어느 것을 선택할지에 대한 의미

public class AppConfig {

    public DiscountPolicy discountPolicy(){
        return new RateDiscountPolicy();
    }
    public MemberRepository memberRepository(){
        return new MemoryMemberRepository();
    }
    public MemberService memberService(){
        return new MemberServiceImpl(memberRepository());
    }
    public OrderService orderService(){
        return new OrderServiceImpl(memberRepository(), discountPolicy());
    }
}

이 상태에서 RateDiscountPolicyFixDiscountPolicy로 변경하게 되어도 사용역역의 코드를 수정하지 않아도 된다.

Appconfig는 모든 구현체를 알고 있어야 한다.
또한 객체들은 의존하는 대상의 인터페이스만 알면 되기 때문에 구현체의 변경에 영향을 받지 않는다.

profile
기록

0개의 댓글