文章目录
- 1.传统方式完成盖房项目
- 1.需求说明
- 2.类图
- 3.目录结构
- 4.代码实现
- 1.AbstractHouse.java
- 2.CommonHouse.java
- 3.Client.java
- 4.结果
- 5.优缺点分析
- 2.建造者模式
- 1.基本介绍
- 2.建造者模式的四个角色
- 3.类图
- 4.代码实现
- 1.House.java
- 2.HouseBuilder.java
- 3.HighHouse.java
- 4.CommonHouse.java
- 5.HouseDirector.java
- 6.Client.java
1.传统方式完成盖房项目
1.需求说明
2.类图
3.目录结构
4.代码实现
1.AbstractHouse.java
package com.sun.tradition;
public abstract class AbstractHouse {
public abstract void buildBasic();
public abstract void buildwalls();
public abstract void roofed();
public void build() {
buildBasic();
buildwalls();
roofed();
}
}
2.CommonHouse.java
package com.sun.tradition;
public class CommonHouse extends AbstractHouse{
@Override
public void buildBasic() {
System.out.println("普通房子打地基");
}
@Override
public void buildwalls() {
System.out.println("普通房子砌墙");
}
@Override
public void roofed() {
System.out.println("普通房子封顶");
}
}
3.Client.java
package com.sun.tradition;
public class Client {
public static void main(String[] args) {
CommonHouse commonHouse = new CommonHouse();
commonHouse.build();
}
}
4.结果
5.优缺点分析
2.建造者模式
1.基本介绍
2.建造者模式的四个角色
3.类图
4.代码实现
1.House.java
package com.sun.impove;
public class House {
private String basic;
private String wall;
private String roofed;
public String getBaise() {
return basic;
}
public void setBaise(String basic) {
this.basic = basic;
}
public String getWall() {
return wall;
}
public void setWall(String wall) {
this.wall = wall;
}
public String getRoofed() {
return roofed;
}
public void setRoofed(String roofed) {
this.roofed = roofed;
}
}
2.HouseBuilder.java
package com.sun.impove;
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;
}
}
3.HighHouse.java
package com.sun.impove;
public class HighHouse extends HouseBuilder{
@Override
public void buildBasic() {
System.out.println("高房子打地基");
}
@Override
public void buildwalls() {
System.out.println("高房子砌墙");
}
@Override
public void roofed() {
System.out.println("高房子封顶");
}
}
4.CommonHouse.java
package com.sun.impove;
public class CommonHouse extends HouseBuilder{
@Override
public void buildBasic() {
System.out.println("普通房子打地基");
}
@Override
public void buildwalls() {
System.out.println("普通房子砌墙");
}
@Override
public void roofed() {
System.out.println("普通房子封顶");
}
}
5.HouseDirector.java
package com.sun.impove;
public class HouseDirector {
private HouseBuilder houseBuilder;
public HouseDirector(HouseBuilder houseBuilder) {
this.houseBuilder = houseBuilder;
}
public void setHouseBuilder(HouseBuilder houseBuilder) {
this.houseBuilder = houseBuilder;
}
public House constructHouse() {
houseBuilder.buildwalls();
houseBuilder.buildBasic();
houseBuilder.roofed();
return houseBuilder.buildHouse();
}
}
6.Client.java
package com.sun.impove;
public class Client {
public static void main(String[] args) {
HouseDirector houseDirector = new HouseDirector(new HighHouse());
House house = houseDirector.constructHouse();
}
}