盖房子有个三个步骤,打桩,砌墙,封顶
房子有各种各样的,比如普通房,高楼,别墅
将盖房的方法统一封装到一个父类,用子类(普通房,高楼,别墅)去继承盖房
盖房统一父类House.java
public abstract class House{
//通用的打桩方法
void abstract buildBasic();
//通用的砌墙方法
void abstract buildWalls();
//通用的封顶方法
void abstract roofed();
//通用的建房方法合集
public void build(){
buildBasic();
buildWalls();
roofed();
}
}
建造普通房子类CommonHouse.java
public class CommonHouse extends House{
@Override
public void buildBasic(){
sout("普通房子打桩")
}
@Override
public void buildWalls(){
sout("普通房子砌墙")
}
@Override
public void roofed(){
sout("普通房子封顶")
}
}
客户端Client.java
public class Client{
public static void main(String[] args){
new CommonHouse().build();
}
}
问题:
基本介绍
建造者模式的四个角色
建造者模式盖房子类图
House.java
public class House{
private String baise;
private String wall;
private String roofed;
//省略getter和setter
}
HouseBuilder.java
//抽象的建造者
public abstract class HouseBuilder{
protected House house=new House();
//将建造的流程写好,抽象的方法
public abstract void buildBasic();
public abstract void buildWalls();
public abasract void roofed();
//建造房子后将产品返回
public House buildHouse(){
return house;
}
}
CommonHouse.java
public class CommonHouse extends HouseBuilder{
@Override
public void buildBasic(){
sout("普通房子打地基")
}
@Override
public void buildWalls(){
sout("普通房子砌墙")
}
@Override
public void roofed(){
sout("普通房子封顶")
}
}
HouseDirector.java
public class HouseDirector{
HouseBuilder houseBuilder=null;
public HouseDirector(HouseBuilder houseBuilder){
this.houseBuilder=houseBuilder;
}
//如何处理建造房子的流程,交给指挥者
public House constructHouse(){
houseBuilder.buildbasic();
houseBuilder.buildWalls();
houseBuilder.roofed();
return houseBuilder.buildHouse();
}
}
Client.java
public class Client{
main{
CommonHouse commonHouse=new CommonHouse();
HouseDirector houseDirector=new HouseDirector(commonHouse);
House house=houseDirector.constructHouse();
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_44932487/article/details/115278466
内容来源于网络,如有侵权,请联系作者删除!