> Java > java지도 시간 > Java 빌더 패턴을 사용하여 복잡한 객체를 빌드하는 방법

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2023-05-10 13:34:12
앞으로
1478명이 탐색했습니다.

소개

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿