亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

建造者模式

系統(tǒng) 1988 0
Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23種設(shè)計(jì)模式中的一種。Builder模式是一種對(duì)象創(chuàng)建型模式之一,用來(lái)隱藏復(fù)合對(duì)象的創(chuàng)建過(guò)程,它把復(fù)合對(duì)象的創(chuàng)建過(guò)程加以抽象,通過(guò)子類繼承和重載的方式,動(dòng)態(tài)地創(chuàng)建具有復(fù)合屬性的對(duì)象。
建造者模式
建造者模式
Builder模式是一種對(duì)象創(chuàng)建型模式,它跟工廠模式(包括工廠方法模式與虛擬工廠模式)一樣,都用來(lái)創(chuàng)建類的對(duì)象。我們先闡述一下Builder模式的定義:
Builder模式用來(lái)創(chuàng)建復(fù)合對(duì)象,并把復(fù)合對(duì)象的創(chuàng)建過(guò)程加以抽象,通過(guò)子類繼承和重載的方式,動(dòng)態(tài)地創(chuàng)建具有復(fù)合屬性的對(duì)象;另一方面,為了統(tǒng)一創(chuàng)建過(guò)程,又把對(duì)象創(chuàng)建的操作統(tǒng)一封裝在名為Director所提供的方法里。

復(fù)合對(duì)象的概念:
所謂復(fù)合對(duì)象,指有別于一般的對(duì)象,該對(duì)象具有不同的復(fù)合屬性。比如我們把一輛汽車看成一個(gè)復(fù)合對(duì)象,是因?yàn)樵撈囉啥鄠€(gè)復(fù)雜的零部件組成,這些零部件可能 因?yàn)樯a(chǎn)廠家的不同等等而不同,但這些不同的零部件最終都能被組裝為一輛汽車。這些不同的零部件我們可稱之為汽車的復(fù)合屬性,同樣可稱該汽車為一個(gè)復(fù)合對(duì)象。

    
public interface CarBuilder {
	public void makeHead();

	public void makeLight();

	public void makeWheel();

}

  


    
public class MiniCarBuilder implements CarBuilder {

	@Override
	public void makeHead() {
		System.out.println("制造車頭");
	}

	@Override
	public void makeLight() {
Ligth light=new Light();

		System.out.println("制造車燈");

	}

	@Override
	public void makeWheel() {
		System.out.println("制造車尾");

	}

}
public class Lighe{}

  


建造者:
    
public class CarDirector {
	CarBuilder builder;

	public CarDirector(CarBuilder builder) {
		this.builder = builder;
	}

	void builder() {
		builder.makeHead();
		builder.makeLight();
		builder.makeWheel();
	}
}

  

測(cè)試類:
    
public class Test {
	public static void main(String[] args) {
		new CarDirector(new MiniCarBuilder()).builder();
	}
}

  


Builder模式與工廠模式的區(qū)別與Builder模式的應(yīng)用場(chǎng)景我們上面提到了,Builder模式和工廠模式一樣,都屬于對(duì)象創(chuàng)建型模式,都用來(lái)創(chuàng)建類的對(duì)象。但它們存在在本質(zhì)的區(qū)別:
- 在工廠模式里,我們無(wú)需關(guān)心產(chǎn)品的各部分是如何被創(chuàng)建的;但在Builder模式里,會(huì)把產(chǎn)品的創(chuàng)建過(guò)程抽象為多個(gè)部分。也就是說(shuō),工廠模式被關(guān)注的是整個(gè)產(chǎn)品,而Builder模式被關(guān)注的是產(chǎn)品的組成部分的創(chuàng)建過(guò)程。
- 因?yàn)樯鲜鲫P(guān)注點(diǎn)的不一樣,工廠模式被創(chuàng)建的產(chǎn)品是一個(gè)單一產(chǎn)品;Builder模式創(chuàng)建的是一個(gè)復(fù)合產(chǎn)品。

簡(jiǎn)單一點(diǎn)說(shuō),在具體的應(yīng)用中,我們是選用工廠模式來(lái)創(chuàng)建對(duì)象呢還是選用Builder模式來(lái)創(chuàng)建對(duì)象,完全取決于我們的關(guān)注點(diǎn)。
比如同為創(chuàng)建一輛汽車,如果我們只需關(guān)注只是從工廠里造出的這一輛汽車本身(然后加以使用),我們就可以使用工廠模式來(lái)創(chuàng)建該汽車;但如果我們還應(yīng)該關(guān)注該汽車的各部分是怎么造出來(lái)的(或者說(shuō),不同的工廠對(duì)產(chǎn)品的各部分的造法不一樣),我們就應(yīng)該使用Builder模式。
Builder模式的應(yīng)用場(chǎng)景
- 對(duì)象的創(chuàng)建:Builder模式是為對(duì)象的創(chuàng)建而設(shè)計(jì)的模式
- 創(chuàng)建的是一個(gè)復(fù)合對(duì)象:被創(chuàng)建的對(duì)象為一個(gè)具有復(fù)合屬性的復(fù)合對(duì)象
- 關(guān)注對(duì)象創(chuàng)建的各部分的創(chuàng)建過(guò)程:不同的工廠(這里指builder生成器)對(duì)產(chǎn)品屬性有不同的創(chuàng)建方法

建造者模式


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 欧美成人免费香蕉 | 老子影院午夜伦不卡不四虎卡 | 欧美另类高清xxxxx | 5388国产亚洲欧美在线观看 | 国产精品日韩欧美一区二区 | 手机看片欧美 | 成人性生活免费视频 | 又粗又硬又大久久久 | 奇米线在人线免费视频 | 久久女同互慰一区二区三区 | 国产91在线chines看 | 日日干夜夜爱 | 老妇综合久久香蕉蜜桃 | 天天操夜夜操免费视频 | 中国老妇色xxxxx | 波多野结衣绝顶大高潮 | 毛片www| 中文有码第一页 | 日本欧美小视频 | 美女久久久久久久久久久 | 久久精品视频免费观看 | 女十八毛片 | 婷婷婷色 | 国产成人夜色91 | 老太婆性杂交毛片 | 亚洲欧美一区二区三区国产精品 | 男女啪网站 | 欧美日本俄罗斯一级毛片 | 亚洲精品国产综合99久久一区 | 婷婷色中文| 国产一区二区在线视频观看 | 国产a做爰全过程片 | 国产亚洲精品自在久久不卡 | 亚洲在线中文 | 7777精品伊人久久久大香线蕉 | 26uuu另类欧美亚洲曰本 | 欧美日韩大片 | 亚洲欧美日韩国产vr在线观 | 国产精品亚洲精品日韩已满 | 日韩欧美亚洲精品 | 高清久久|