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);
}
}
執行結果:
至此,建造者模式已結束!