package com.maom.design.D_07_Builder;
/**
* @Title: D_07_Builder
* @Description: 07_建造者模式
* @Author maohb
* @Version 1.0
*/
public class D_07_Builder {
public static void main(String[] args) {
// //客户直接造房子
// House house = new House();
// house.setFloor("地板");
// house.setWall("墙");
// 由工程队来修
HouseBuilder builder = new GongyuBuilder();
// 设计者来做
HouseDirector director = new HouseDirector();
director.makeHouse(builder);
House house = builder.getHouse();
System.out.println(house.getFloor());
System.out.println(house.getWall());
}
}
/** 房子 */
class House {
// 地板
private String floor;
// 墙
private String wall;
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;
}
}
class HouseDirector {
public void makeHouse(HouseBuilder builder) {
builder.makeFloor();
builder.makeWall();
}
}
/** 工程队 */
interface HouseBuilder {
//修地板
public void makeFloor();
//修墙
public void makeWall();
public House getHouse();
}
/** 公寓工程队 */
class GongyuBuilder implements HouseBuilder{
House house = new House();
public House getHouse() {
return house;
}
public void makeFloor() {
house.setFloor("公寓-->地板");
}
public void makeWall() {
house.setWall("公寓-->墙");
}
}
/** 平房工程队 */
class PingFangBuilder implements HouseBuilder {
House house = new House();
public void makeFloor() {
house.setFloor("平房-->地板");
}
public void makeWall() {
house.setWall("平房-->墙");
}
public House getHouse() {
return house;
}
}
设计模式笔记_07_建造者模式
最新推荐文章于 2024-10-10 22:44:55 发布