Builder
public class Car {
String enginee; String paint; String tyre; public String getEnginee() { return enginee; } public void setEnginee(String enginee) { this.enginee = enginee; } public String getPaint() { return paint; } public void setPaint(String paint) { this.paint = paint; } public String getTyre() { return tyre; } public void setTyre(String tyre) { this.tyre = tyre; } } --------------------------------------------------------------------- |
public interfac CarBuilder { public String makeEnginee(String enginee); public String paint(String paint); public String makeTyre(); public void makeCar(); public Car getCar(); } --------------------------------------------------------------------- |
public class USCarBuilder implements CarBuilder {
Car car; public String makeEnginee(String enginee){ return "Enginee type "+ enginee; } public String paint(String paint){ return "Paint color "+paint; } public String makeTyre(){ return "4 tyres attached"; } public void makeCar(){ car = new Car(); car.setEnginee(this.makeEnginee("US")); car.setTyre(makeTyre()); car.setPaint(paint("Yellow")); } @Override public Car getCar() { return car; } --------------------------------------------------------------------- |
public class Director {
CarBuilder builder; public CarBuilder getBuilder() { return builder; } public void setBuilder(CarBuilder builder) { this.builder = builder; } public void build(){ this.builder.makeCar(); } public Director(CarBuilder builder) { super(); this.builder = builder; } } --------------------------------------------------------------------- |
public class GermanCarBuilder implements CarBuilder {
Car car; public String makeEnginee(String enginee){ return "Engi type "+ enginee; } public String paint(String paint){ return "Color paint "+paint; } public String makeTyre(){ return "8 tyres attached"; } public void makeCar(){ car = new Car(); car.setEnginee(this.makeEnginee("German")); car.setTyre(makeTyre()); car.setPaint(paint("Red")); } @Override public Car getCar() { return car; } } |
public class Test {
/** * @param args */ public static void main(String[] args) { CarBuilder build = new USCarBuilder(); Director direct = new Director(build); direct.build(); Car car = build.getCar(); System.out.println("Car "+ car.getEnginee()); } } |