設計模型之建立者模式 含UML完整例項

2021-10-23 05:39:11 字數 2780 閱讀 8272

1.1 定義與特點

建造者(builder)模式的定義:指將乙個複雜物件的構造與它的表示(給物件屬性賦值)分離,使同樣的構建過程可以建立不同的表示(給物件屬性賦值),這樣的設計模式被稱為建造者模式。它是將乙個複雜的物件分解為多個簡單的物件,然後一步一步構建而成。它將變與不變相分離,即產品的組成部分是不變的,但每一部分是可以靈活選擇的。

該模式的主要優點如下:

其缺點如下:

建造者(builder)模式和工廠模式的關注點不同:建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程,但兩者可以結合使用。

1.2 模式的結構

1.3 uml類圖

1.4 問題由來

在軟體系統中,有時候面臨著"乙個複雜物件"的建立工作,其通常由各個部分的子物件用一定的演算法構成;由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定

在現實生活中,大家知道一輛車是很複雜的,有發動機、變速器、輪胎、擋風玻璃、雨刮器、氣缸、方向盤等等無數的部件。

通常使用者會和銷售談我需要什麼什麼樣的型別的車,馬力要不要強勁、空間是否寬敞,這樣銷售就會根據使用者的需要去推薦一款具體的車,客戶的需求總是多種多樣的,但是生產組裝汽車的步驟是固定的,比如先是車身骨架,在是發動機…

1.5 解決思路

客戶的需求是變化多樣的,由於需求的變化,這個車這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定,所以考慮到這一點,用生產者模式實現客戶需求,需要抽象汽車產品的各個零件部件的生產機器,這樣當客戶群需要不同檔次的車,只要有實現客戶需要的各個零部件的生產機器,就可以生產出滿足客戶需求的車。因為客戶需要的不同型別的車組裝零部件步驟都是一樣的,所以需要在流水線上指定好組裝零部件的步驟,讓生產汽車機器按步驟生產。

1.6 解決方案

/**

* @author 26530

* 汽車生產組裝模型

*/public

abstract

class

carproductionassemblymodel

/**

* @author 26530

* 汽車類(包含構成汽車的零部件)

*/public

class

carpublic string getengine()

public

void

setengine

(string engine)

public string getbodyskeleton()

public

void

setbodyskeleton

(string bodyskeleton)

public string getwheel()

public

void

setwheel

(string wheel)

public

car(

)@override

public string tostring()

}

/**

* @author 26530

* 生產流水線(指揮者)

*/public

class

carproductionline

}

/**

* @author 26530

* 高檔車生產機器

*/public

class

highcarmachine

extends

carproductionassemblymodel

@override

void

bodyskeleton()

@override

void

wheel()

@override

car getresult()

}

/**

* @author 26530

* 中檔車生產機器

*/public

class

midddlecarmachine

extends

carproductionassemblymodel

@override

void

bodyskeleton()

@override

void

wheel()

@override

car getresult()

}

/**

* @author 26530

* 低檔車生產機器

*/public

class

bottomcarmachine

extends

carproductionassemblymodel

@override

void

bodyskeleton()

@override

void

wheel()

@override

car getresult()

}

public

class

test

}

設計模型之裝飾者模式 含UML完整例項

1.1 定義與特點 裝飾 decorator 模式的定義 指在不改變現有物件結構的情況下,動態地給該物件增加一些職責 即增加其額外功能 的模式,它屬於物件結構型模式。有點像 模式的功能,物件提供了與真實物件相同的方法,並可以擴充套件真實物件的功能 裝飾 decorator 模式的主要優點有 其主要缺...

設計模式 建立者模式

建造者模式屬於建立型模式 基本原理 有底到高一層層的建立疊加,上層是依靠底層的建立。就如細胞組 體不同的組織,組織組成了不同的人。主要流程 1.建立最基本的單元 2.建立所要建造的物品,使用基本單元建立該物品的元素 3.使用物品建立完整的結構 include include using namesp...

設計模式 建立者模式

建立者模式又叫建造者模式,是將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建立者模式隱藏了複雜物件的建立過程,它把複雜物件的建立過程加以抽象,通過子類繼承或者過載的方式,動態的建立具有復合屬性的物件。建立者模式通常包括如下幾種角色 1.建造者角色 builder 對複雜...