>  기사  >  Java  >  Java 빌더 패턴을 사용하여 복잡한 객체를 빌드하는 방법

Java 빌더 패턴을 사용하여 복잡한 객체를 빌드하는 방법

WBOY
WBOY앞으로
2023-05-10 13:34:121384검색

소개

Java의 빌더 패턴은 생성적 디자인 패턴으로, 주요 목적은 일련의 간단한 단계를 통해 복잡한 객체를 구축하는 것입니다. 이를 통해 구성 세부 사항을 숨기면서 복잡한 객체의 다양한 표현을 생성할 수 있습니다. 즉, 먼저 기본 개체를 만든 다음 최종적으로 완전한 개체가 만들어질 때까지 점차적으로 더 많은 속성이나 부분을 추가합니다.

이 패턴의 주요 아이디어는 개체의 구성 프로세스를 여러 단계로 나누는 것입니다. 단계 모두 독립적으로 실행될 수 있으며 각 단계가 완료된 후 중간 상태로 돌아갈 수 있으며 디렉터 클래스를 사용하여 이러한 단계를 조정하고 최종적으로 완전한 객체를 생성할 수 있습니다.

빌더 패턴에는 일반적으로 다음 역할이 포함됩니다.

  • 제품: 여러 속성 또는 구성 요소를 포함하는 생성된 복잡한 개체입니다.

  • 추상 생성자 클래스(Builder): 복잡한 개체를 만드는 데 필요한 메서드와 속성을 정의합니다.

  • Concrete Builder 클래스(ConcreteBuilder): 추상 빌더 클래스에 정의된 메서드 및 속성을 사용하고 최종 생성된 객체를 반환합니다.

  • 디렉터 클래스(Director): 각 특정 빌더 클래스의 생성 프로세스를 조정하고 최종 생성 객체,

를 반환합니다. 구현

먼저 제품 클래스를 생성합니다

package com.fanqiechaodan.build;
import lombok.Data;
/**
 * @Classname Car
 * @Description 产品类
 */
@Data
public class Car {
    private String brand;
    private String model;
    private String color;
    private int maxSpeed;
}

두 번째로 추상 빌더 클래스를 생성합니다

package com.fanqiechaodan.build;
/**
 * @Classname CarBuilder
 * @Description 抽象建造者类
 */
public abstract class CarBuilder {
    protected Car car;
    public CarBuilder(){
        car = new Car();
    }
    public abstract void buildBrand();
    public abstract void buildModel();
    public abstract void buildColor();
    public abstract void buildMaxSpeed();
    public Car getCar() {
        return car;
    }
}

그런 다음 구체적인 생성자 클래스를 생성합니다

package com.fanqiechaodan.build;
/**
 * @Classname BMWBuilder
 * @Description 具体构造者类
 */
public class BMWBuilder extends CarBuilder {
    @Override
    public void buildBrand() {
        car.setBrand("BMW");
    }
    @Override
    public void buildModel() {
        car.setModel("X6");
    }
    @Override
    public void buildColor() {
        car.setColor("Black");
    }
    @Override
    public void buildMaxSpeed() {
        car.setMaxSpeed(218);
    }
}

디렉터 클래스 생성

package com.fanqiechaodan.build;
/**
 * @Classname Director
 * @Description 导演类
 */
public class Director {
    private CarBuilder carBuilder;
    public Director(CarBuilder carBuilder) {
        this.carBuilder = carBuilder;
    }
    public Car constructCar() {
        carBuilder.buildBrand();
        carBuilder.buildColor();
        carBuilder.buildMaxSpeed();
        carBuilder.buildModel();
        return carBuilder.getCar();
    }
}

Test

package com.fanqiechaodan.build;
/**
 * @Classname Demo
 * @Description 建造者模式
 */
public class Demo {
    public static void main(String[] args) {
        CarBuilder carBuilder = new BMWBuilder();
        Director director = new Director(carBuilder);
        Car car = director.constructCar();
        System.out.println(car.toString());
    }
}

Java 빌더 패턴을 사용하여 복잡한 객체를 빌드하는 방법

위 내용은 Java 빌더 패턴을 사용하여 복잡한 객체를 빌드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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