Builder設計模式

2021-07-15 16:59:00 字數 2809 閱讀 5001

builder設計模式一般會採用鏈式程式設計結構

案例分析?

構建一台電腦(記憶體、

cpu、顯示卡等等

.....)

記憶體:r

am(執行記憶體)和

rom(非執行記憶體)

分為了一些角色

builder

-->

抽象類(規範產品組裝)--

>

案例中builder介面

concratebuilder

-->

具體組裝產品類--

>

案例macbookprobuilder p

roduct

--->

具體的產品--

>

案例computer

director

-->

統一組裝--

>

案例director

uml結構

關聯關係:沒有你我可以生存,你沒有我同樣可以生存

聚合關係:沒有你我可以生存,你沒有我就不可以生存

組合關係:沒有你我不能生存,你沒有我同樣不能生存

專案結構:

/** * 抽象builder類(規範產品)

* */

public inte***ce builder

package com.example.builder;

/** * 電腦

*/public class computer

public computer(string memory, string cpu, string display, string os)

public string getmemory()

public void setmemory(string memory)

public string getcpu()

public void setcpu(string cpu)

public string getdisplay()

public void setdisplay(string display)

public string getos()

public void setos(string os)

@override

public string tostring()

}

package com.example.builder;

/** * 組裝電腦

* */

public class director

/*** 構建電腦

* * @param memory

* @param cpu

* @param display

* @param os

*/public void computerdirector(string memory, string cpu, string display,

string os)

}

package com.example.builder:

package com.example.builder;

/** * 組裝電腦

*/public class director

/*** 構建電腦

* * @param memory

* @param cpu

* @param display

* @param os

*/public void computerdirector(string memory, string cpu, string display,

string os)

}

package com.example.builder.test:

package com.example.builder.test;

import com.example.builder.builder;

import com.example.builder.director;

import com.example.builder.impl.macbookprobuilder;

/** * 客戶端

*/public class test

}

執行結果:

蘋果電腦cpu:

蘋果電腦display:

蘋果電腦memory:

電腦型別:

蘋果電腦os:

蘋果電腦memory:16 gb 1867 mhz ddr3

蘋果電腦cpu:3.1 ghz intel core i7

蘋果電腦display:intel iris graphics 6100 1536 mb

電腦型別:10.11.5 (15f34)

蘋果電腦os:10.11.5 (15f34)

computer [memory=16 gb 1867 mhz ddr3, cpu=3.1 ghz intel core i7, display=intel iris graphics 6100 1536 mb, os=10.11.5 (15f34)]

整理自ppt

Builder設計模式

當乙個類需要過載多個構造方法時,並且引數隨機使用時,builder模式就出現了。官方說法 將乙個複雜的物件的構建與他的表示相分離,使用者可以一步一步構建乙個比較複雜的物件。自己理解 先通過某種方式取得構造物件所需要的所有引數,再通過這些引數一次性構建這個物件。實現如下 package com.dem...

設計模式 Builder模式

bulder模式是一步步建立乙個複雜物件的建立模型,它允許使用者在不知道內部構建細節 的情況下可以更精細地控制物件的構造流程該模式為將構建複雜物件的過程和它的部件 解耦,使得構建過程和部件的表示隔離開來。將乙個負責物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示 3.1 相同的方法,不...

設計模式 Builder模式

網路上有人將它定義為 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的物件。所以建造者模式適合於乙個具有較多的零件 屬性 的產品 物件 的建立過程。由五個部分構成 1.product concreatebuilder建立該產品的內部表示並定義它的裝配過程。2.builder介面 ...