함수형 프로그래밍과 유사하게 단일객체가 아닌 순환객체, 연산자의 의미를 담아 객체를 생성할 수 있는 방법이 있다는 것을 알게되었다.
빌더패턴에 대해 몇번 들어보긴 하였지만 이번에 알아본 계기로 확실하게 의미를 파악하여 추후 적용할 수 있도록 공부한 기록을 남긴다.
빌더패턴은 필드변수에 따라 부분적으로 생성자를 만들어 생성자를 반환해주는 패턴으로, 순환객체로 활용할 수 있어 함수형프로그래밍과 끊임없이 재활용할 수 있는 객체지향성의 의미가 잘 담겨진 패턴이라 볼 수 있겠다.
나아가 이론적으로 일급객체까지는 아닐 수 있으나, 연산에 적용할 수 있다는 생각이 들었기에 실질적으로 일급객체의 의미도 담겨져 있는 패턴이라 생각하였다.
빌더패턴을 통해 생성자를 만드는 방법을 살펴보면 이해를 바로 할 수 있다.
class StudentBuilder {
private int id;
private String name;
private String grade;
private String phoneNumber;
public StudentBuilder id(int id) {
this.id = id;
return this;
}
public StudentBuilder name(String name) {
this.name = name;
return this;
}
public StudentBuilder grade(String grade) {
this.grade = grade;
return this;
}
public Student phoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
return this;
}
public Student build() {
return new Student(id, name, grade, phoneNumber); // Student 생성자 호출
}
이처럼 각 필드변수에 대한 명시생성자를 부분적으로 선언하였고, 특히 반환형태를 해당 생성객체를 주었다는 점을 유념하도록 한다.
빌더패턴은 위와 같이 객체생성자를 만들고, 최종적으로 build메소드를 통해 특정 필드변수를 기반한 객체를 반환하도록 설정할 수 있다.
빌더패턴(이해가 가장 잘되었던 글이었다) - https://inpa.tistory.com/entry/GOF-%F0%9F%92%A0-%EB%B9%8C%EB%8D%94Builder-%ED%8C%A8%ED%84%B4-%EB%81%9D%ED%8C%90%EC%99%95-%EC%A0%95%EB%A6%AC