TMI개발일기
객체의 빌드 패턴 본문
객체의 빌드는 객체에 값을 setter할때 좀더 직관적으로 넣을 수 있는 방법인데
spring mvc 모델을 기반으로 mybatis를 통해 Db연결을 공부하다가 알게 된 것을 적어보려 한다.
DB와 연동할 Dto를 만들었다고 할 때
객체를 생성할 때 생성자(constructor)를 사용하면 좋지만 몇가지 단점이 있다.
- 내가 설정해둔 순서대로 값을 넣어줘야 한다
- 어떤 순서로 넣었는지 확인할 수가 없어 생성자 길이가 길어지면 Dto를 참고하면서 넣어야 한다.
이런 문제점을 빌드 패턴은 개발자의 관점에서 좀더 직관적이고 편리하게 넣을 수 있게 해준다.
MemberDto를 lombok으로 setter getter와 기본 constructor를 설정해뒀다.
3가지 형태로 예시를 들어보려 하는데
1.생성자x 빌드 패턴x
딱봐도 Dto에 값을 넣는 단순한 작업인데 코드길이만 길다.
2.생성자 o 빌드 패턴x
예시들중 가장 길이가 짧지만 생성자를 어떻게 생성하느냐에 따라 내가 순서를 다 알고있어야하며
필요한 변수들만 생성자로 넣고 싶다면 별개로 생성자를 생성해서 Dto에서 설정해줘야한다.
캡처에서 오류가 나는 이유는 생성자를 변수 모두 포함과 기본생성자()만 설정했기 때문이다.
이렇게 생성자는 코드의 길이를 줄여주지만 약점이 있다. 그래서 나온 방식이 빌드 패턴
3.생성자 x 빌드 패턴 o
객체를 생성하고 객체클래스명.builder().****.*****.*****.*****.build();
형식으로 사용하는데 이렇게 빌드형식으로 값을 설정하면
순서에 상관없이 내가 넣고 싶은 변수에 값을 지정할 수 있는 장점이 생긴다.
생성자처럼 순서를 몰라도 되지만 setter를 썼을 때 보단 코드가 훨씬 단순해지고
어떤 변수에 어떤 값을 넣었는지 한 눈에 보기 편해진다.
'백엔드 > Spring' 카테고리의 다른 글
Spring 기본설정 구조 (0) | 2021.06.17 |
---|---|
Spring 구조 MVC 패턴 (0) | 2021.06.17 |
Spring mvc 구조 설정 -pom.xml(maven) (0) | 2021.06.16 |