Java 작성자 모드 쉽게 파악
특징:
1. 분업이 더욱 명확하고 구성과 구조가 분리되어 제품의 생산을 더욱 잘 통제할 수 있다.
2. 확장이 쉽고 새로운 수요가 있을 때 Builder 핑계만 대면 된다.
엔터프라이즈급 개발 및 일반 프레임워크에서의 응용: JMail
구성: 제품류, 추상적 건설자, 건설자, 감독.
제품 종류:
public class Product{
private String partA;// ,
private String partB;// ,
private String partC;// ,
// set、get
}
추상 작성자:
//
public interface Builder{
public void setPartA(String partA);
public void setPartB(String partB);
public void setPartC(String partC);
}
작성자 구현 클래스:
public class BuilderImpl implements Builder{
private Product product;
public BuilderImpl(){
product = new Product();
}
public void builderPartA(){
String partA = new String();//
product.setPartA(partA);
}
public void builderPartB(){
String partB = new String();//
product.setPartB(partB);
}
public void setPartC(){
String partC = new String();//
product.setPartC(partC);
}
public Product getProduct(){
return this.product;
}
}
감독 클래스:
public class Director{
private Builder b ;
public Director(Builder newB){
this.b = newB;
}
public void createBuilder(Builder b){
this.b = b;
}
public Product constructProduct(){
b.builderPartA();
b.builderPartB();
b.builderPartC();
}
}
테스트 클래스:
public class Demo{
public static void main(String[] args){
Builder b = new BuilderImpl();
Director d = new Director();
d.createBuilder(b);
Product p = c.constructProduct();
}
}
위의 예에서 우리가 발견하기 어렵지 않다. 만약에 우리가 따로 감독 클래스를 실현한다면 완전히 다른 제품을 조립할 수 있다. 감독 클래스가 제품의 조립을 통제하기 때문이다. 마찬가지로 만약에 우리가 추상 구축 클래스를 다시 실현한다면 완전히 다른 제품이 나타날 수 있기 때문에 그 중에서 구축자 모델이 더욱 추상화되고 절차화되는 것을 발견할 수 있다.추상적인 공장 모델에 비해 이 두 가지가 놀랍게도 비슷하다는 것을 발견하기 어렵지 않다. 그러나 왜 두 가지 다른 디자인 모델로 나눌 수 있을까? 사실 중점은 제품의 복잡도와 추상적인 정도에 있다. 건설자 모델은 추상적인 공장 모델보다 더욱 추상화되고 복잡해진다. 즉, 건설자 모델이 대응하는 제품은 추상적인 공장이 대응하는 제품보다 더욱 복잡하고 제품 생산 절차가 더욱 추상적이다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.