Spring 객체지향 원리 적용(3) AppConfig 리팩터링

woohee·2024년 3월 30일

Spring 핵심원리

목록 보기
8/12
post-thumbnail

🔖지난 포스트에서 AppConfig 생성하여 객체를 생성하고 역할을 부여하도록 구현하였고, SOLID 법칙을 만족하도록 구현하였다. 이번 포스트에서는 AppConfig를 리팩터링 해보자.

AppConfig의 역할이 뚜렷하게 보이지 않아서 리팩터링하여 역할을 드러나게 구현해보자.


AppConfig 리팩터링

리팩터링이란?
결과의 변경 없이 코드의 구조를 재조정함을 뜻한다.

지금 현재의 appConfig 코드만 봐서는 다음 다이어그램이 한눈에 들어오지 않는다.

  • appConfig 코드를 리팩터링해보자.
  • appConfig의 역할이 한 눈에 들어오기 위한 코드는 다음과 같다.
public class AppConfig {
    public MemberService memberService(){
        return new MemberServiceImpl(memberRepository());
    }
    private static MemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }

    public OrderService orderService(){
        return new OrderServiceImpl(memberRepository(),discountPolicy());
    }
    public DiscountPolicy discountPolicy(){
        return new FixDiscountPolicy();
    }
}
  • MemoryRepository를 다른 구현체로 변경할 때 한 부분만 변경하면 된다.
  • AppConfig를 보면 역할과 구현 클래스가 한 눈에 들어온다. 전체 구성을 빠르게 파악할 수 있다.

📜Summary

  • 클래스의 역할이 한 눈에 들어오지 않을 때 리팩터링을 하자.
  • 리팩터링을 통해 애플리케이션 구성을 빠르게 파악할 수 있다.

0개의 댓글