建造設計模式

package JAVABasic;

/**
 * 建造模式(Builder) 將一個對象的內部表象和建造過程分割, 
 * 一個建造過程能夠造出不一樣表象的對象。可簡化爲模版方法模式.
 * 
 * @author markGao
 * 
 */
public class BuilderMode {
    // 顧客調用
    public static void main(String[] args) {
        //顧客點菜
        Food f = new TangcuXiaoPai(); // 目前仍是一盤不能吃的食物。
        Director  d = new Director(f); // 指揮者
        d.supplyFood(); //如今是一盤加工以後能夠吃的食物了。
        

    }

}


/**
 * 作菜所須要的步驟
 */
interface Food {
    public void You(); // 放油

    public void Yan(); // 放鹽

    public void Shui(); // 加水,,,等等是作菜不可缺乏的步驟

}

/**
 * 宮保雞丁
 * @author markGao
 */
class GongbaoJiding implements Food {
    public void You() {

    }

    public void Yan() {

    }

    public void Shui() {

    }
}

/**
 * 糖醋小排
 * 
 * @author markGao
 * 
 */
class TangcuXiaoPai implements Food {
    public void You() {

    }

    public void Yan() {
    }

    public void Shui() {
    }
}

/**
 *  建造者模式當中還有一個重要的類,就是指揮者,它和客戶和作菜人之間打交道, 
 *  客戶對着它說作菜,而後它在叫某個具體作菜的人去作咯。 
 * @author markGao
 *
 */
class Director {
    private Food food;

    Director(Food f) {
        this.food = f;
        doFood();
    }

    private void doFood() {
        food.You();
        food.Yan();
        food.Shui();
    }
    
    public Food supplyFood(){
        return food;
    }
}
相關文章
相關標籤/搜索