好好學習設計模式之二 建造者模式

2021-09-06 03:30:34 字數 1112 閱讀 1565

建造者模式,就是使得建造**與表示**分離,由於建造者隱藏了該產品是如何組裝的,所以如果需要改變乙個產品的內部表示,只需要再定義乙個具體的建造者就可以了。具體的uml圖例如下:

當然,上面的已經做了詳細的注釋,其實,對於產品,主要是先將所有的產品的公共行為抽象為乙個方法出來,然後再在builder中進行具體的構建行為,當然了,產品是怎麼樣的,還得需要director的決定。具體**如下:

product類

using

system;

using

system.collections.generic;

namespace

class

product

public

void

show()}}

} builder類:

namespace

abstract

class

builder}

concretebuilder1類:

namespace

class

concretebuilder1:builder

public

override

void

buildpartb()

public

override

product getresult()}}

concretebuilder2類:

namespace

class

concretebuilder2:builder

public

override

void

buildpartb()

public

override

product getresult()}}

最後就是指揮官來進行建立產品了:

director類:

namespace

class

director}}

設計模式 二 建造者模式

參考 意圖 將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。主要解決 主要解決在軟體系統中,有時候面臨著 乙個複雜物件 的建立工作,其通常由各個部分的子物件用一定的演算法構成 由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法卻相對穩定。何...

學習設計模式 建造者模式

說明 如果你需要將乙個複雜的物件或功能的構建流程和表示分離,使得同樣的構建流程,也可以建立出不同的表示,例如麥當勞做炸東西,炸東西的流程是一樣的,但放入的材料不同,炸出來的東西不一樣 例如雞排 雞腿 雞翅等 需求 使用者要個炸雞腿 解決方式 a.定義乙個產品類 炸東西 b.定義乙個構建產品部分或過程...

設計模式學習 建造者模式

建造者模式主要用於分離物件的建立和配置。呼叫元件負責提供資料。並負責將配置資料傳遞給建造者。建造者代替呼叫元件去建立響應的物件。好處 何時使用 示例程式 新建乙個名為builder的 osx命令列程式 實現如下 class burger let customername string let veg...