欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Builder pattern-生成器模式

系統 1745 0
參考文獻:
http://en.wikipedia.org/wiki/Builder_pattern

??? 生成器(英:Builder)是一種設計模式,又名:建造模式,是一種對象構建模式。它可以將復雜對象的建造過程抽象出來(抽象類別),使這個抽象過程的不同實現方法可以構造出不同表現(屬性)的對象。


參與者
Builder
創建對象的抽象接口。
Concrete Builder
提供Builder的實現。
Director
負責管理對象創建的正確順序。I
Product
由Director使用Builder創建的最終對象。

    
package com.sinosoft.train.gof.cp;

/** "Product"-建造的最終產品-比薩餅 */
class Pizza {
	private String dough = "";
	private String sauce = "";
	private String topping = "";

	public void setDough(String dough) {
		this.dough = dough;
	}

	public void setSauce(String sauce) {
		this.sauce = sauce;
	}

	public void setTopping(String topping) {
		this.topping = topping;
	}

	@Override
	public String toString() {
		return dough + "-" + sauce + "-" + topping;
	}
}

/** "Abstract Builder"-比薩餅抽象生成器 */
abstract class PizzaBuilder {
	protected Pizza pizza;

	public Pizza getPizza() {
		return pizza;
	}

	public void createNewPizzaProduct() {
		pizza = new Pizza();
	}

	public abstract void buildDough();

	public abstract void buildSauce();

	public abstract void buildTopping();
}

/** "ConcreteBuilder"-夏威夷人的比薩餅生成器 */
class HawaiianPizzaBuilder extends PizzaBuilder {
	public void buildDough() {
		pizza.setDough("cross");
	}

	public void buildSauce() {
		pizza.setSauce("mild");
	}

	public void buildTopping() {
		pizza.setTopping("ham+pineapple");
	}
}

/** "ConcreteBuilder" -辛辣的比薩餅生成器 */
class SpicyPizzaBuilder extends PizzaBuilder {
	public void buildDough() {
		pizza.setDough("pan baked");
	}

	public void buildSauce() {
		pizza.setSauce("hot");
	}

	public void buildTopping() {
		pizza.setTopping("pepperoni+salami");
	}
}

/** "Director" - 廚師 */
class Cook {
	private PizzaBuilder pizzaBuilder;

	public void setPizzaBuilder(PizzaBuilder pb) {
		pizzaBuilder = pb;
	}

	public Pizza getPizza() {
		return pizzaBuilder.getPizza();
	}

	public void constructPizza() {
		pizzaBuilder.createNewPizzaProduct();
		pizzaBuilder.buildDough();
		pizzaBuilder.buildSauce();
		pizzaBuilder.buildTopping();
	}
}

/** A given type of pizza being constructed. */
public class Builder {
	public static void main(String[] args) {
		Cook cook = new Cook();
		PizzaBuilder hawaiianPizzaBuilder = new HawaiianPizzaBuilder();
		PizzaBuilder spicyPizzaBuilder = new SpicyPizzaBuilder();

		cook.setPizzaBuilder(hawaiianPizzaBuilder);
		cook.constructPizza();

		Pizza hawaiian = cook.getPizza();
		System.out.println(hawaiian);
		cook.setPizzaBuilder(spicyPizzaBuilder);
		cook.constructPizza();

		Pizza spicy = cook.getPizza();
		System.out.println(spicy);
	}
}

  

Builder pattern-生成器模式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品欧美一区二区在线观看 | 99热久久66是国产免费 | 中文字幕一区二区三区四区五区 | 久久影院一区二区三区 | 高清乱码一卡二卡插曲A | 五月深爱婷婷 | 亚洲国产欧美在线人网站 | 欧美成人免费高清二区三区 | 国产天堂网 | 成人黄视频在线观看 | 日本精品一区二区三区四区 | 欧美色欧美亚洲高清在线视频 | 色综合天天综合高清网国产 | 国产精品网址在线观看你懂的 | 国产99视频在线 | 久久99色| 狠狠综合久久 | 久久久久免费观看 | 亚洲人与黑人xxxx | 无码一区二区三区曰本A片 欧美综合激情网 | 免费看污成人午夜网站 | 日韩免费视频网站 | 激情综合视频 | 超碰在线观看97 | 亚洲福利在线观看 | 成人免费看 | 在线视频综合视频免费观看 | a毛片在线看免费观看 | 青娱乐精品在线 | 99久久精品费精品国产一区二区 | 国产日韩欧美精品 | 天天射天天草 | 精品亚洲一区二区三区四区五区 | 起碰97 | 久久久国产视频 | A片好大好紧好爽视频 | 青草视频网 | 久久99精品久久 | 国产精品香蕉 | 久草大| 成人精品一区二区三区 |