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