建造者模式
public abstract class AbstractHouse {
public abstract void buildBasic ( ) ;
public abstract void buildWalls ( ) ;
public abstract void roofed ( ) ;
public void build ( ) {
buildBasic ( ) ;
buildWalls ( ) ;
roofed ( ) ;
}
}
public class CommonHouse extends AbstractHouse {
public void buildBasic ( ) {
}
public void buildWalls ( ) {
}
public void roofed ( ) {
}
}
public class House {
private String basie;
private String wall;
private String roofed;
}
public abstract class HouseBuilder {
protected House house = new House ( ) ;
public abstract void buildBasic ( ) ;
public abstract void buildWalls ( ) ;
public abstract void roofed ( ) ;
public House buildHouse ( ) {
return house;
}
}
public class CommonHouse extends HouseBuilder {
public void buildBasic ( ) {
}
public void buildWalls ( ) {
}
public void roofed ( ) {
}
}
public class HighBuilding extends HouseBuilder {
public void buildBasic ( ) {
}
public void buildWalls ( ) {
}
public void roofed ( ) {
}
}
public class HouseDirector {
HouseBuilder houseBuilder = null;
public HouseDirector ( HouseBuilder houseBuilder) {
this . houseBuilder = houseBuilder;
}
public void setHouseBuilder ( HouseBuilder houseBuilder) {
this . houseBuilder = houseBuilder;
}
public House constructHouse ( ) {
housBuilder. buildBasic ( ) ;
housBuilder. buildWalls ( ) ;
housBuilder. roofed ( ) ;
return houseBuilder. buildHouse ( ) ;
}
}