ホームページ  >  記事  >  Java  >  Java ビルダー パターンを使用して複雑なオブジェクトを構築する方法

Java ビルダー パターンを使用して複雑なオブジェクトを構築する方法

WBOY
WBOY転載
2023-05-10 13:34:121381ブラウズ

はじめに

Java のビルダー パターンは創造的なデザイン パターンです。その主な目的は、一連の単純な手順を通じて複雑なオブジェクトを構築し、複雑なオブジェクトのさまざまな表現を作成できるようにすることです。 , 構築の詳細は非表示になっています。オブジェクトを段階的に構築できます。つまり、最初に基本的なオブジェクトを作成し、その後、完全なオブジェクトが最終的に構築されるまで、プロパティやコンポーネントを徐々に追加していきます。このパターンは、オブジェクトの構築を組み合わせるものです。プロセスは複数のステップに分割され、各ステップは独立して実行でき、各ステップの完了後に中間状態を返すことができます。その後、これらを調整するためにディレクター クラスが使用されます。

ビルダー パターンには通常、次の役割が含まれます。

    製品クラス (Product): 複数のプロパティまたはコンポーネントを含む構築された複雑なオブジェクト。
  • 抽象コンストラクター クラス (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 ビルダー パターンを使用して複雑なオブジェクトを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。