概述
在軟體系統中,有時候面臨著「乙個複雜物件」的建立工作,其通常由各個部分的子物件用一定的演算法構成;由於需求的變化,這個複雜物件的各個部分經常面臨著劇烈的變化,但是將它們組合在一起的演算法確相對穩定。如何應對這種變化?如何提供一種「封裝機制」來隔離出「複雜物件的各個部分」的變化,從而保持系統中的「穩定構建演算法」不隨著需求改變而改變?這就是要說的建造者模式。
意圖
將乙個複雜的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。
usingsystem;
using
system.collections;
using
system.collections.generic;
using
system.linq;
using
system.text;
namespace
builderpatterndemo
public
void
show()
console.writeline(strfoodlist);
console.writeline(
"\n---------------------------------------");}}
}
usingsystem;
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()}}
usingsystem;
using
system.collections.generic;
using
system.linq;
using
system.text;
namespace
builderpatterndemo}}
using|--foodsystem;
using
system.collections.generic;
using
system.linq;
using
system.reflection;
using
system.text;
namespace
builderpatterndemo}}
|--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 當你向舊的類中新增新 時,一般是為了新增核心職責或主要行為。而當需要加入的僅僅是一些特定情況下才會執行的特定的功能時 簡單點就是不...