- 생성자에 매개변수가 많다면 빌더를 고려하라2021년 03월 15일 00시 54분 38초에 업로드 된 글입니다.작성자: jCurve728x90반응형
인스턴스 생성시 선택적 매개변수가 많다면 대응이 어렵다
점층적 생성자 패턴도 쓸 수는 있지만, 매개변수가 많아지면 클라이언트 코드를 작성하거나 읽기가 어려워진다.
자바 빈즈 패턴을 사용하면 객체 하나를 만들시 파라미터를 채울 여러 메서드를 호출해야 하고, 객체가 완전히 생성되기 전까지는 일관성이 무너진 상태에 놓이게 된다.
또한, 자바 빈즈 패턴에서는 클래스를 불변으로 만들 수가 없다.
이러한 대안으로 빌더 패턴이 있다.
빌더 패턴은 필수 매개변수만으로 생성자를 호출해 빌더 객체를 얻은 후 빌더 객체가 제공하는 일종의 세터 메서드로 원하는 선택 매개변수를 설정한 후 마지막으로 buil 메서드를 호출해 객체를 얻는 방식이다.
빌더는 생성할 클래스 안에 정적 멤버 클래스로 만들어두는 게 보통이다.
builder builder 사용 결과
빌더 패턴은 계층적으로 설계된 클래스와 함께 쓰기에 좋다.
각 계츠으이 클래스에 관련 빌더를 멤버로 청의하자
추상 클래스는 추상 빌더를, 구체 클래스는 구체 빌더를 갖게 한다.
빌더패턴은 매개변수가 4개 이상은 되어야 값어치를 하지만 api는 시간이 지날수록 매개변수가 많아지는 경향이 있음으로 시작부터 빌더로 시작하는 편이 좋을 수도 있다.
반응형'JAVA' 카테고리의 다른 글
인스턴스화를 막으려거든 private 생성자를 사용하자 (0) 2021.03.15 private 생성자나 열거 타입으로 싱글턴임을 보증하자 (0) 2021.03.15 생성자 대신 정적 팩터리 메서드를 고려 (0) 2021.03.14 백기선 - JAVA STUDY/WEEK15 (0) 2021.03.06 백기선 - JAVA STUDY/WEEK14 (0) 2021.03.06 댓글