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