发表时间:2008-11-27
最后修改:2008-12-05
了解建造者模式:
在软件系统中,经常会遇到一个创建工作,一个复杂对象由各部分子对象用一定算法构成,由于需求改变,这个复杂对象各个部分面临剧烈变化的,但组合在一起相对稳定。
个人理解:要去商店买吃的,商店有汉堡,可乐,鸡腿等等。顾客可以说自己的需要,告诉服务生,服务生分配给你所需要的东西。
//可乐 public class CocaCola { private String size; public String getSize() { return size; } public void setSize(String size) { this.size = size; } } //鸡腿 public class Drumstick { private String size; public String getSize() { return size; } public void setSize(String size) { this.size = size; } } //汉堡 public class Hamburger { private String size; public String getSize() { return size; } public void setSize(String size) { this.size = size; } }
服务生提供
public class Waiter { // 餐1 public static void meal1(){ new Drumstick(); new CocaCola(); }; // 餐2 public static void meal2(){ new Drumstick(); new Hamburger(); }; // 餐3 public static void meal3(){ new Hamburger(); }; }
顾客从服务生那得到餐
public class Client { //选择用餐 public void userMeal(){ Waiter.meal1(); } }
也可以选择用餐。
从这个例子来看,用户可以选择不同的餐,服务生也可以任意搭配,并且该店可以改变食物的属性,例如大小,生熟,等等这就相当于小对象的算法。这并不影响顾客的需要。
这个模式可以提高松耦合。