設計模式 生成器模式

2021-09-11 12:09:40 字數 2715 閱讀 1484

封裝乙個產品的構造過程,並允許按步驟構造

需要經過多個步驟建立的物件,如實際生活中的點餐流程,管理系統中的匯出框架等

此處以點餐流程為例

入口**

package com.glt.designpattern.builder;

public

class

initmain

}

建造者類

package com.glt.designpattern.builder;

/** * 建造者物件

* 生成最終物件的建造者

*/public

class

builder

/** * 午餐

*/public meal lunch()

/** * 晚餐

*/public meal dinner()

}

建造者產品類

package com.glt.designpattern.builder;

/** * 建造者物件

* 生成最終物件的建造者

*/public

class

builder

/** * 午餐

*/public meal lunch()

/** * 晚餐

*/public meal dinner()

}

子項介面

package com.glt.designpattern.builder;

/** * 每一餐需要的子項

*/public

inte***ce

item

食品物件

package com.glt.designpattern.builder;

/** * 食品項

*/public

abstract

class

food

implements

item

}

飲品物件

package com.glt.designpattern.builder;

/** * 飲品項

*/public

abstract

class

drink

implements

item

}

具體食品類

package com.glt.designpattern.builder;

/** * 食品類-麵包

*/public

class

breadfood

extends

food

@override

public

float

price()

}

package com.glt.designpattern.builder;

/** * 食品類-披薩

*/public

class

pizzafood

extends

food

@override

public

float

price()

}

具體飲品類

package com.glt.designpattern.builder;

/** * 飲品類-啤酒

*/public

class

beerdrink

extends

drink

@override

public

float

price()

}

package com.glt.designpattern.builder;

/** * 飲品類-水

*/public

class

waterdrink

extends

drink

@override

public

float

price()

}

輸出結果:

名稱:麵包,水

**:4.0

包裝:盒子,瓶子

名稱:披薩,啤酒

**:8.0

包裝:盒子,瓶子

名稱:麵包,啤酒

**:6.0

包裝:盒子,瓶子

process finished with exit code 0

優點:

建造者在產品的每個步驟都可以自由組合,擴充套件性強

缺點:

內部步驟變化複雜,會產生很多類

與工廠模式區別是此模式會有多個步驟,並且會關注每個步驟的順序

設計模式 生成器模式

前兩個文章我介紹了工廠方法模式和抽象工廠模式,這次我來講一些生成器模式。生成器模式我也用的比較多。5個建立型模式裡面,我比較喜歡用工廠方法模式,生成器模式和單例模式。意圖將乙個複雜物件的構建與它的表示分開,使得同樣的構建過程可以建立不同的表示。結構圖 一眼看去是不是和抽象工廠模式有點像?是啊,我也覺...

設計模式 生成器模式

定義 將乙個複雜的物件,分成多分,使同樣的構建過程,能有不同的表示,這樣的設計模式被稱為建造者模式。舉例說明 李嘉誠的遺囑執行 財產 產品角色 李嘉誠擁有眾多複雜的財產框架,這裡以現金與物品入例。遺囑 建造者 相當於建造者,分配現金與物品。具體遺囑 具體建造者 1.給大兒子的財產分配,2,給小兒子的...

設計模式之 生成器模式

在產品結構比較複雜,構造過程比較繁瑣,一次性構造比較難的時候,我們可以採取分而治之的原則,將產品元件化,每個元件由專門的廠商來生產,最後的產品指派給制定的車間進行最後裝配.這種方式其實是現代製造業的一種典型的模式.比如汽車,飛機的製造等.這樣做的好處是 1.產品的部件由專門的生產廠商來生產,這樣分工...