設計模式(三) BuilderPattern

2021-09-06 08:50:10 字數 1938 閱讀 2353

概述

在軟體系統中,有時候面臨著「乙個複雜物件」的建立工作,其通常由各個部分的子物件用一定的演算法構成;由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法確相對穩定。如何應對這種變化?如何提供一種「封裝機制」來隔離出「複雜物件的各個部分」的變化,從而保持系統中的「穩定構建演算法」不隨著需求改變而改變?這就是要說的建造者模式。

意圖

將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。

using

system;

using

system.collections;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

builderpatterndemo

public

void

show()

console.writeline(strfoodlist);

console.writeline(

"\n---------------------------------------");}}

}

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

builderpatterndemo

//普通**生產者

class

commonbuilder :ibuilder

public

void

producthumburger()

public

void

productchips()

public

food getfood()

}//****生產者

class

goldbuilder : ibuilder

public

void

producthumburger()

public

void

productchips()

public

food getfood()}}

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

builderpatterndemo}}

using

system;

using

system.collections.generic;

using

system.linq;

using

system.reflection;

using

system.text;

namespace

builderpatterndemo}}

|--food 

|--director    construct(ibuilder builder)傳入建造者,返回食物

|--ibuilder   productcoke();producthumburger();productchips()  food getfood();

|---commonbuilder

|---goldbuilder

設計模式(三)

中介者模式 中介物件來封裝行為,是各個物件的協調中心。使得各物件不需要相互引用就可以實現之間的互動。觀察者模式 比如oc中常用的notification delegate模式等.命令模式 target action nsinvocation 把執行封裝成命令物件。建立nsinvocation物件時,...

設計模式 三

行為型模式 重點關注物件之間的通訊 1 觀察者模式 1.1 定義 觀察者 observer 模式定義 只多個物件間存在一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴他的物件都得到通知並被自動更新,這種模式有時又稱作發布 訂閱模式 模型 檢視模式,它是行為型模式。1.2 結構角色 實現觀察者模...

設計模式 三 裝飾模式

動態地給乙個物件新增一些額外的職責 不重要的功能,只是偶然一次要執行 就增加功能來說,裝飾模式比生成子類更為靈活。建造過程不穩定,按正確的順序串聯起來進行控制。good 當你向舊的類中新增新 時,一般是為了新增核心職責或主要行為。而當需要加入的僅僅是一些特定情況下才會執行的特定的功能時 簡單點就是不...