- 리팩토링 진행시 별도 생성자를 만들어야하는 경우가 발생함.
- 생성자는 최대한 작을 수록 좋은 건 사실이다.
- 최대한 입구가 좁아야 유효성 검사 등의 로직을 한 곳에서 집중할 수 있기 때문이다.
- 하지만!
- 자바 + 스프링에서는 하이버네이트나 javax 에서 제공하는 필드에 대한 유효성 검사 어노테이션이 존재한다.
- 이를 통해 생성자라는 입구가 많아 져도 제어가 가능하지 않을까 싶다.
- 그래서 별도의 private 생성자를 만들고 FM 메서드로 해당 생성자로 이어지도록 설정하려고했다.
private 상품설정(@NotNull String 종류아이디) { this.종류아이디= 종류아이디; } public static 상품설정 from(@NotNull String 종류아이디) { return new BoardConfig(종류아이디); }
- 알고리즘에서 만이 쓰던 방식인데
- FM 메서드에서는 변환만을 수행하고,
- 생성자에서는 유효성 검사만 수행하는 것이다.
- 혹시나 누군가가 코드를 만졌을때 생성자에 임의로 작업을 수행하는 일이 생길까봐, 별도로 FM 메서드를 만들어 차라리,, 여기서 작업해달라고 알리고싶어서 만들기도 했다..
- 생성자를 조작하면 답도 없어진다
- 알고리즘에서 만이 쓰던 방식인데
Uploaded by N2T
'자바 > 리팩토링' 카테고리의 다른 글
[리팩토링] 리스트 조회에서 api 만 분리하기 (0) | 2023.09.21 |
---|---|
[리팩토링] DTO 가 너무 분화될 것 같은 경우 어떻게 해야할까? (0) | 2023.09.21 |
[리팩토링] DTO 에서 VO 간의 전환 메서드를 편하게 사용하려면? - MapStruct (0) | 2023.09.21 |
[리팩토링]Spring Boot 2.4.5 vs Spring Boot 3.1.xx (0) | 2023.09.12 |
[리팩토링]Java 1.8 vs Java 17 (0) | 2023.09.10 |