>Java >Java베이스 >자바 빌더 패턴의 특징과 응용 시나리오

자바 빌더 패턴의 특징과 응용 시나리오

angryTom
angryTom앞으로
2019-11-26 15:18:334141검색

자바 빌더 패턴의 특징과 응용 시나리오

빌더 모드

모드의 정의 그리고 기능

빌더 패턴 정의: 은 복잡한 객체의 구성을 표현에서 분리하여 동일한 구성 프로세스가 다른 표현을 만들 수 있음을 의미합니다. 이 디자인 패턴은 다음과 같습니다. 빌더 패턴이라고 합니다. 복잡한 개체를 여러 개의 간단한 개체로 분해한 다음 단계별로 구축합니다. 이는 변경과 불변성을 분리합니다. 즉, 제품의 구성 요소는 변경되지 않은 상태로 유지되지만 각 부분은 유연하게 선택할 수 있습니다.

이 모델의 주요 장점은 다음과 같습니다.

각 특정 빌더는 서로 독립적이므로 도움이 됩니다. 시스템 확장에. 고객은 제품의 내부 구성에 대한 세부 사항을 알 필요가 없으므로 세부적인 위험을보다 쉽게 ​​​​통제할 수 있습니다.

단점은 다음과 같습니다.

제품의 구성품이 동일해야 하므로 사용 범위가 제한됩니다. 제품의 내부 변경 사항이 복잡한 경우 이 패턴은 많은 빌더 클래스를 추가합니다.

빌더 패턴과 팩토리 패턴은 초점이 다릅니다. 빌더 패턴은 구성 요소의 조립 프로세스에 중점을 두는 반면, 팩토리 메서드 패턴은 구성 요소 생성 프로세스에 더 중점을 두지만 둘을 모두 사용할 수 있습니다. 조합하여 .

(추천 영상: java videotutorial)

패턴의 구조와 구현#🎜🎜 ## 🎜🎜#빌더 패턴은 제품, 추상 빌더, 콘크리트 빌더, 커맨더의 네 가지 요소로 구성됩니다. 이제 기본 구조와 구현 방법을 분석해 보겠습니다.

1. 패턴의 구조

Builder 패턴의 주요 역할은 다음과 같습니다.

제품 역할(Product): 여러 구성 요소를 포함하는 복잡한 객체이며, 개별 구성 요소는 특정 빌더에 의해 생성됩니다. 추상 빌더(Builder): 제품의 다양한 하위 구성요소를 생성하기 위한 추상 메소드를 포함하는 인터페이스이며 일반적으로 복잡한 제품을 반환하는 getResult() 메소드도 포함합니다. Concrete Builder: 복잡한 제품의 각 구성 요소에 대한 특정 생성 방법을 완성하기 위해 Builder 인터페이스를 구현합니다. 디렉터: 빌더 개체에서 구성 요소 구성 및 조립 방법을 호출하여 복잡한 개체 생성을 완료합니다. 디렉터는 특정 제품 정보를 포함하지 않습니다.

구조도는 다음과 같습니다.

자바 빌더 패턴의 특징과 응용 시나리오

2 패턴 구현

# 🎜 🎜#(1) 제품 역할: 여러 구성 요소를 포함하는 복잡한 개체입니다.

public class Product {
    private String partA;
    private String partB;
    private String partC;
    public void setPartA(String partA) {
        this.partA = partA;
    }
    public void setPartB(String partB) {
        this.partB = partB;
    }
    public void setPartC(String partC) {
        this.partC = partC;
    }
    public void show() {
        //显示产品的特性
    }
}

(2) 추상 빌더: 제품의 다양한 하위 구성 요소를 생성하기 위한 추상 메서드가 포함되어 있습니다.

public abstract class Builder {
    //创建产品对象
    protected Product product = new Product();
    public abstract void buildPartA();
    public abstract void buildPartB();
    public abstract void buildPartC();
    //返回产品对象
    public Product getResult() {
        return product;
    }
}

(3) 콘크리트 빌더: 추상 빌더 인터페이스를 구현합니다.

public class ConcreteBuilder extends Builder {
    public void buildPartA() {
        product.setPartA("建造 PartA");
    }
    public void buildPartB() {
        product.setPartA("建造 PartB");
    }
    public void buildPartC() {
        product.setPartA("建造 PartC");
    }
}

(4) 명령자: 빌더의 메서드를 호출하여 복잡한 객체 생성을 완료합니다.

public class Director {
    private Builder builder;
    public Director(Builder builder) {
        this.builder = builder;
    }
    //产品构建与组装方法
    public Product construct() {
        builder.buildPartA();
        builder.buildPartB();
        builder.buildPartC();
        return builder.getResult();
    }
}

(5) 클라이언트의 응용 시나리오

public class Client {
    public static void main(String[] args) {
        Builder builder = new ConcreteBuilder();
        Director director = new Director(builder);
        Product product = director.construct();
        product.show();
    }
}

패턴

빌더 모드 생성 복잡한 객체입니다 , 그리고 자사 제품의 여러 부분이 급격한 변화에 직면하는 경우가 많지만, 이를 결합한 알고리즘은 비교적 안정적이므로 주로 다음과 같은 상황에 사용됩니다.

생성된 객체는 더 복잡하고 여러 구성 요소로 구성됩니다. 각 구성 요소는 복잡한 변화를 겪지만 구성 요소 간의 구성 순서는 안정적입니다. 복잡한 객체를 생성하는 데 사용되는 알고리즘은 객체의 구성 요소 및 조립 방법과 무관합니다. 즉, 제품의 제작 과정과 최종 표현은 독립적입니다.

이 기사는 PHP 중국어 웹사이트,

java tutorial

칼럼에서 가져온 것입니다. 학습을 환영합니다!

위 내용은 자바 빌더 패턴의 특징과 응용 시나리오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제