JAVA 23种设计设计模式---建造者模式
建造者模式跟之前的模式一样 要抓住以下几点,在使用时就会有了构建思路。
代码结构及介绍:
电脑:
package com.zxf.builder;
/**
* 假设一台电脑由 主板、硬盘、CPU组成
* @author Administrator
*
*/
public class Computer {
private String mainBoard;//主板
private String HD;//硬盘
private String CPU;
public String getMainBoard() {
return mainBoard;
}
public void setMainBoard(String mainBoard) {
this.mainBoard = mainBoard;
}
public String getHD() {
return HD;
}
public void setHD(String hD) {
HD = hD;
}
public String getCPU() {
return CPU;
}
public void setCPU(String cPU) {
CPU = cPU;
}
@Override
public String toString() {
return "Computer [mainBoard=" + mainBoard + ", HD=" + HD + ", CPU="
+ CPU + "]";
}
}
生产组件及组装电脑的方法:
package com.zxf.builder;
//抽象生产 主板、硬盘、CPU 以及组件电脑的方法
public interface Builder {
//构建主板
public void buildMainBoard();
//构建硬盘
public void buildHD();
//构建CPU
public void buildCPU();
//最终生成的电脑
public Computer buildComputer();
}
第一种电脑:
package com.zxf.builder;
/**
* 生产相应零件及组装成电脑
* @author Administrator
*
*/
public class BuildComputer implements Builder {
Computer c = new Computer();
@Override
public void buildMainBoard() {
c.setMainBoard("华硕");
}
@Override
public void buildHD() {
c.setHD("希捷500G");
}
@Override
public void buildCPU() {
c.setCPU("Intel i5");
}
//将上面的零件组装成电脑
public Computer buildComputer() {
return c;
}
}
第二种电脑:
package com.zxf.builder;
/**
* 生产相应零件及组装成电脑
* @author Administrator
*
*/
public class BuildComputer2 implements Builder {
Computer c = new Computer();
@Override
public void buildMainBoard() {
c.setMainBoard("技嘉");
}
@Override
public void buildHD() {
c.setHD("三是");
}
@Override
public void buildCPU() {
c.setCPU("AMD 四核");
}
//将上面的零件组装成电脑
public Computer buildComputer() {
// TODO Auto-generated method stub
return c;
}
}
建造者:
package com.zxf.builder;
/**
* 建造者
* @author Administrator
*
*/
public class Director {
public static Computer constructorComputer(Builder b){
b.buildMainBoard();
b.buildHD();
b.buildCPU();
return b.buildComputer();
}
}
测试类:
package com.zxf.builder;
//测试类
public class TestBuilder {
public static void main(String[] args) {
Computer com = Director.constructorComputer(new BuildComputer());
System.out.println(com);
Computer com2 = Director.constructorComputer(new BuildComputer2());
System.out.println(com2);
}
}
运行结果:
至此,建造者模式已结束!