1. 程式人生 > >JAVA 23種設計設計模式---建造者模式

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);
    }

}

執行結果:

至此,建造者模式已結束!