빌더 패턴빌더 패턴(Builder Pattern)

 

빌더 패턴이란 동일한 생성 절차에서 생성 과정과 표현 방법을 분리하여 서로 다른 결과를 만들게 하는 패턴이다.

 

 

빌더 패턴이 중요한 이유:
번거로운 생성자 정의(생성 인자가 많을 때 )

 

 

 

생성자가 많을 때 아래 코드처럼 사용할 생성자를 전부 다 만들어야 한다. 또한 인자 순서(?)도 신경써서 작성해야 한다. 

public class Computer{
	private String user;
	private String cpu;
	private String ram;
	
	public Computer(String user){
	this.user =user;
}
	public Computer(String user,String cpu){
	this.user = user;
	this.cpu = cpu;
}

	public Computer(String user,String cpu,String ram){
	this.user =user;
	this.cpu = cpu;
	this.ram = ram;
}
}

 

 

빌더 패턴 : builder.set()으로 원하는 인자나 순서 상관없이 입력가능하다.

 

(순서 : user - ram -cpu 로 반드시 선언할 필요가 없다)

(인자 : user값을 안 넣어도 되고 ram,cpu만 넣어도 된다)

>>생성자로 하게되면 해당 생성 인자에 default값을 넣거나 따로 생성자를 만들어야 함!

 

 

 

생성자를  만드는 것이 아니라 빌더로 따로 정의해서 가독성이 좋아진다.

public static class Builder {
	private String user;
	private String cpu;
	private String ram;

public Builder setUser(String user){
	this.user = user;
	return this;
}
public Builder setCpu(String cpu{
	this.cpu = cpu;
	return this;
}
public Builder setRam(String ram{
	this.ram= ram;
	return this;
}
public Builder build(){
	return new Builder(user,cpu,ram);
}
}

 

public class BuilderPattern{
public static void main(String []args){ 	
Builder builder = new Builder();

Computer computer= builder
.setUser("senungwon")
.setRam("8g")
.setCpu("256g ssd")
.build();
	}
}

+ Recent posts