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;
}
}
转载于:https://my.oschina.net/u/1412027/blog/193901