建造者模式实现

//创建房子的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);
	}
	
	
}

发布了25 篇原创文章 · 获赞 4 · 访问量 720

猜你喜欢

转载自blog.csdn.net/qq_43149023/article/details/96039550
今日推荐