[리팩토링] FM 메서드 → private 생성자 전략

  • 리팩토링 진행시 별도 생성자를 만들어야하는 경우가 발생함.
  1. 생성자는 최대한 작을 수록 좋은 건 사실이다.
    • 최대한 입구가 좁아야 유효성 검사 등의 로직을 한 곳에서 집중할 수 있기 때문이다.
    • 하지만!
      • 자바 + 스프링에서는 하이버네이트나 javax 에서 제공하는 필드에 대한 유효성 검사 어노테이션이 존재한다.
      • 이를 통해 생성자라는 입구가 많아 져도 제어가 가능하지 않을까 싶다.
  • 그래서 별도의 private 생성자를 만들고 FM 메서드로 해당 생성자로 이어지도록 설정하려고했다.
    private 상품설정(@NotNull String 종류아이디) {
            this.종류아이디= 종류아이디;
        }
        
        public static 상품설정 from(@NotNull String 종류아이디) {
            return new BoardConfig(종류아이디);
        }
    • 알고리즘에서 만이 쓰던 방식인데
      1. FM 메서드에서는 변환만을 수행하고,
      1. 생성자에서는 유효성 검사만 수행하는 것이다.
    • 혹시나 누군가가 코드를 만졌을때 생성자에 임의로 작업을 수행하는 일이 생길까봐, 별도로 FM 메서드를 만들어 차라리,, 여기서 작업해달라고 알리고싶어서 만들기도 했다..
    • 생성자를 조작하면 답도 없어진다


Uploaded by N2T