//创建房子的pojo
package builder;
public class House {
private String top;
private String floor;
private String wall;
public House() {
super();
// TODO Auto-generated constructor stub
}
public House(String top, String floor, String wall) {
super();
this.top = top;
this.floor = floor;
this.wall = wall;
}
public String getTop() {
return top;
}
public void setTop(String top) {
this.top = top;
}
public String getFloor() {
return floor;
}
public void setFloor(String floor) {
this.floor = floor;
}
public String getWall() {
return wall;
}
public void setWall(String wall) {
this.wall = wall;
}
@Override
public String toString() {
return "House [top=" + top + ", floor=" + floor + ", wall=" + wall + "]";
}
}
package builder;
public interface HouseBuilder { //房子都要修理天花板,地板和墙纸
public void makeTop();
public void makeFloor();
public void makeWall();
}
package builder;
public class PingFangBuilder implements HouseBuilder{ //平房施工队可以实现这些修理
@Override
public void makeTop() {
// TODO Auto-generated method stub
System.out.println("平房-----》修理房顶");
}
@Override
public void makeFloor() {
// TODO Auto-generated method stub
System.out.println("平房-----》修理地板");
}
@Override
public void makeWall() {
// TODO Auto-generated method stub
System.out.println("平房-----》修理墙纸");
}
}
package builder;
public class BieshuBuilder implements HouseBuilder{ //别墅施工队可以实现这些修理
@Override
public void makeTop() {
// TODO Auto-generated method stub
System.out.println("别墅-----》修理房顶");
}
@Override
public void makeFloor() {
// TODO Auto-generated method stub
System.out.println("别墅-----》修理地板");
}
@Override
public void makeWall() {
// TODO Auto-generated method stub
System.out.println("别墅-----》修理墙纸");
}
}
package builder;
public class MakeHouseDirector {
public void makeHouse(HouseBuilder builder) { //修理房子的公司可以找那些施工队进行修理
builder.makeFloor();
builder.makeTop();
builder.makeWall();
}
}
package builder;
import org.junit.Test;
public class Test1 {
@Test
public void house() {
//房子主人自己修理
House house = new House();
house.setFloor("修理地板");
house.setTop("修理天花板");
house.setWall("修理墙纸");
System.out.println(house);
}
@Test
public void house2() {
//房子主人找平房修理施工队来修理
HouseBuilder builder = new PingFangBuilder();
builder.makeFloor();
builder.makeTop();
builder.makeWall();
//房子主人找别墅主人来修理
HouseBuilder builder2 = new BieshuBuilder();
builder2.makeFloor();
builder2.makeTop();
builder2.makeWall();
}
@Test
public void house3() {
//房子主人找修理房子公司来修理
MakeHouseDirector makeHouseDirector = new MakeHouseDirector();
HouseBuilder builder = new PingFangBuilder();
HouseBuilder builder2 = new BieshuBuilder();
makeHouseDirector.makeHouse(builder);
makeHouseDirector.makeHouse(builder2);
}
}