한 클래스는 하나의 책임만 가져야 한다.
관심사를 분리하고, App"Config" 라는 클래스를 통해 구현객체를 담당
사용 영역과 구성 영역으로 나눔
다형성을 사용하고 DIP를 지킴
AppConfig에서 FixDiscountPolicy 에서 RateDiscountPolicy로 변경해서 주입하므로 클라이언트 코드는 변경하지 않아도된다.