package com.designPattern.builder;
/**
* Created by ZhangJintao on 2020/3/12.
*/
public class Automobile {
private String window;
private String whell;
private String seat;
private String color;
public String getWindow() {
return window;
}
public void setWindow(String window) {
this.window = window;
}
public String getWhell() {
return whell;
}
public void setWhell(String whell) {
this.whell = whell;
}
public String getSeat() {
return seat;
}
public void setSeat(String seat) {
this.seat = seat;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
@Override
public String toString() {
return "Automobile{" +
"window='" + window + '\'' +
", whell='" + whell + '\'' +
", seat='" + seat + '\'' +
", color='" + color + '\'' +
'}';
}
}
2、Builder
package com.designPattern.builder;
/**
* Created by ZhangJintao on 2020/3/12.
*/
public abstract class AutomobileBuilder {
public abstract void buildWindow();
public abstract void buildWhell();
public abstract void buildSeat();
public abstract void buildColor();
public abstract Automobile getAutomobile();
}
3、ConcreteBuilder
package com.designPattern.builder;
/**
* Created by ZhangJintao on 2020/3/12.
*/
public class BusBuilder extends AutomobileBuilder{
private Automobile automobile = new Automobile();
@Override
public void buildWindow() {
automobile.setWindow("我是公共汽车的窗子");
}
@Override
public void buildWhell() {
automobile.setWindow("我是公共汽车的轮子");
}
@Override
public void buildSeat() {
automobile.setWindow("我是公共汽车的座位");
}
@Override
public void buildColor() {
automobile.setWindow("我是公共汽车的颜色");
}
@Override
public Automobile getAutomobile() {
return automobile;
}
}
package com.designPattern.builder;
/**
* Created by ZhangJintao on 2020/3/12.
*/
public class CarBuilder extends AutomobileBuilder {
private Automobile automobile = new Automobile();
@Override
public void buildWindow() {
automobile.setWindow("我是小汽车的窗子");
}
@Override
public void buildWhell() {
automobile.setWhell("我是小汽车的轮子");
}
@Override
public void buildSeat() {
automobile.setSeat("我是小汽车的座位");
}
@Override
public void buildColor() {
automobile.setColor("我是小汽车的颜色");
}
@Override
public Automobile getAutomobile() {
return automobile;
}
}
4、 Director
package com.designPattern.builder;
/**
* Created by ZhangJintao on 2020/3/12.
*/
public class AutomobileDirector {
AutomobileBuilder automobileBuilder = null;
public AutomobileDirector(AutomobileBuilder automobileBuilder) {
this.automobileBuilder = automobileBuilder;
}
public void constract(){
automobileBuilder.buildColor();
automobileBuilder.buildSeat();
automobileBuilder.buildWhell();
automobileBuilder.buildWindow();
}
}
5、Main
package com.designPattern.builder;
/**
* Created by ZhangJintao on 2020/3/12.
*/
public class main {
public static void main(String[] args) {
CarBuilder carBuilder = new CarBuilder();
AutomobileDirector automobileDirector = new AutomobileDirector(carBuilder);
automobileDirector.constract();
System.out.println(carBuilder.getAutomobile().toString());
}
}
一、UML图二、实例1、Productpackage com.designPattern.builder;/** * Created by ZhangJintao on 2020/3/12. */public class Automobile { private String window; private String whell; priva...