OK後,可使用一些基本的變化 類似的東西首先你要汽車,使用默認的建設者自動裝配的實例,那麼你只要你想在這裏的例子修改:
Car.calss
public class Car {
private Radio radio;
private Speaker speaker;
private Engine engine;
public Car(Radio radio, Speaker speaker, Engine engine) {
this.radio = radio;
this.speaker = speaker;
this.engine = engine;
}
public Radio getRadio() {
return radio;
}
public void setRadio(Radio radio) {
this.radio = radio;
}
public Speaker getSpeaker() {
return speaker;
}
public void setSpeaker(Speaker speaker) {
this.speaker = speaker;
}
public Engine getEngine() {
return engine;
}
public void setEngine(Engine engine) {
this.engine = engine;
}
}
CarBuilder.class
@Component
public class CarBuilder {
@Autowired
private Radio radio;
@Autowired
private Speaker speaker;
@Autowired
private Engine engine;
public CarBuilder setRadio(Radio radio) {
this.radio = radio;
return this;
}
public CarBuilder setSpeaker(Speaker speaker) {
this.speaker = speaker;
return this;
}
public CarBuilder setEngine(Engine engine) {
this.engine = engine;
return this;
}
public Car createCar() {
return new Car(radio, speaker, engine);
}
}
,並使用生成器在你的代碼它像下面
@Component
public class CarMarket {
@Autowired
private CarBuilder carBuilder;
private Car buildStandardCar(){
return carBuilder.createCar();
}
private Car buildStandardCarButDifferentRadio(Radio radio){
return carBuilder.setRadio(radio).createCar();
}
}
我希望這將幫助你:)
爲什麼你想建立實例,當春天爲你做? – kuhajeyan
因爲有一些變量我想繼續改變。例如型號A123或下一次B658。但無線電需要揚聲器和汽車需要無線電。 – user293655