빌더패턴이란?
빌더패턴 구현
public class Test {
private String title;
private String code;
private int priority;
private int grade;
public int getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getCode() {
return code;
}
public int setCode(String code) {
this.code = code;
}
public int getPriority() {
return priority;
}
public int setPriority(String priority) {
this.priority = priority;
}
public int getGrade() {
return grade;
}
public int setGrade(String grade) {
this.grade = grade;
}
}
public class TestBuilder {
private String title;
private String code;
private int priority;
private int grade;
public TestBuilder (String title, String code) {
this.title = title;
this.code = code;
}
public TestBuilder priority(int priority) {
this.priority = priority;
return this;
}
public TestBuilder grade(int grade) {
this.grade = grade;
return this;
}
public Test build() {
Test test = new Test();
stock.setTitle(this.title);
stock.setCode(this.code);
stock.setPriority(this.priority);
stock.setGrade(this.grade);
return test;
}
}
Builder 사용.
Test test = new TestBuilder(title, code).priority(priority).grade(grade).build();
장점
사용예
생성 하려는 객체의 생성자를 private로 생성하여 Builder로만 객체의 생성이 되게 하고, 해당 객체에 setter를 없애면, 생성 된 객체에 중간에 값을 추가하거나 변경하지 못하게 하여 immutable 하게 생성이 가능.
라이브러리로 특정 기능 제공 시에 객체를 빌더로 생성하게 하면 필수값, 값에 대한 validation 등에 대한 효과적인 제공이 가능.
'designpattern' 카테고리의 다른 글
디자인 패턴 (0) | 2020.01.19 |
---|---|
Facade Pattern (0) | 2020.01.18 |