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