오늘은 하루종일 뭔가 하기 싫은 날이였다.
리팩토링이 싫기는 했지만, 이렇게 싫은 일일줄 몰랐따.
그리고 TIL 을 요즘 너무나도 안적는 것 같아서 오늘 알았던 내용들, 그리고 틀렸던 내용들
그리고 헷갈렸던 내용들을 체킹하는 시간을 꼭 가져야겠다고 생각했다.
오류들은 즉각즉각 켜서 만들어 놓자.
내일은 일어나서 그냥 벨로그창 켜놓고 시작을 해야겠다.
또한 하루에 1개념씩은 뭔가 넣어야 겠다는 생각이 들었다.
이제부터는 실전이니까 뭔가 실전 냄시가 많이나는 코드들도 올릴 예정이다.
오늘은 일단 개념만 정리해보겠다.
객체를 정의하고 그 객체를 생성할때, 생성자를 생성하는데 몇가지의 단점이 있어서 객체를 생성하는 별도의 Builder 라는 것을 두는 것을 빌더패턴이라고 한다.
예시를 들으면 다음과 같다.
Bag bag = new Bag("name", 1000, "memo");
다음과 같이 생성자로 생성할 수 있지만,
Bag bag = Bag.builder()
.name("name")
.money(1000)
.memo("memo")
.build();
다음과 같이 builder 를 통해서 객체를 생성할 수 있는 빌더를 builder() 함수에 얻고 이를 거기에 셋팅하고자 하는 값을 셋팅하고, 마지막에 .build() 를 통해서 빌더를 작동시켜서 객체를 생성한다.
이는 다음과 같이 2개의 이유를 들 수 있다.
- 생성자 파라미터가 많을 경우 가독성이 좋지 않다.
- 어떠한 값을 먼저 설정하던 상관이 없다.