設計模式中的構建模式builder
阿新 • • 發佈:2021-06-11
構建模式將一個複雜的物件分離構建。
public interface TerrainBuilder { public ComplxBuilder buildWall(); public ComplxBuilder buildFort(); public AllBuilder build(); } public class ComplxBuilder implements TerrainBuilder{ AllBuilder allBuilder=new AllBuilder(); @Override public ComplxBuilder buildWall() { allBuilder.setW(new Wall(10,20,30,45)); return this; } @Override public ComplxBuilder buildFort() { allBuilder.setF(new Fort(20,30,40,50)); return this; } @Override public AllBuilder build() { return allBuilder; } } public class AllBuilder { private Wall w;private Fort f; public Wall getW() { return w; } public void setW(Wall w) { this.w = w; } public Fort getF() { return f; } public void setF(Fort f) { this.f = f; } public AllBuilder() { } @Override public String toString() {return "AllBuilder{" + "w=" + w + ", f=" + f + '}'; } } public class Wall { private int x; private int y; private int z; private int v; public Wall() { } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public int getZ() { return z; } public void setZ(int z) { this.z = z; } public int getV() { return v; } public void setV(int v) { this.v = v; } public Wall(int x, int y, int z, int v) { this.x = x; this.y = y; this.z = z; this.v = v; } } public class Fort { private int x; private int y; private int z; private int v; public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public int getZ() { return z; } public void setZ(int z) { this.z = z; } public int getV() { return v; } public void setV(int v) { this.v = v; } public Fort() { } public Fort(int x, int y, int z, int v) { this.x = x; this.y = y; this.z = z; this.v = v; } } public class main { public static void main(String[] args) { TerrainBuilder builder=new ComplxBuilder(); AllBuilder t=builder.buildWall().buildFort().build(); System.out.println(t.toString()); } }