一模式定義
建造者簡單理解就是造東西,只不過建造者模式建造的不是乙個簡單的東西,是乙個比較複雜的東西。
二模式舉例
1模式分析
我們借用顧客到手杌營業廳去辦理手機**的例子說明這一模式
經過抽象分析後,我們得出下面資訊
客戶張三——終端需求
營業廳操作員——指導者(通知指導建造者生產什麼樣的手機**)
計算機——建造者(建造各種手機**)
手機**——產品
2建造者模式靜態建模
3**示例
3.1建立產品——手機**
package com.demo.buider.model;
public class mobilepackage
public void setmoney(float money)
public int getshortinfo()
public void setshortinfo(int shortinfo)
public string getmusic()
public void setmusic(string music)
}
3.2建造者介面
package com.demo.buider.itf;
import com.demo.buider.model.mobilepackage;
/** * 手機**builder
* * @author
* */
public inte***ce imobilebuilder
3.3建立具體建造者具體的建造者1
package com.demo.buider.itf;
import com.demo.buider.base.abstractbasepackage;
import com.demo.buider.model.mobilepackage;
/** * **1
* * @author maofw
* */
public class mobilebuilderimpl1 extends abstractbasepackage implements imobilebuilder
// 建造手機**的彩玲
public void buildmusic()
// 建造手機**的簡訊
public void buildshortinfo()
// 返回建造的手機**物件
public mobilepackage getmobilepackage()
}
具體的建造者2
package com.demo.buider.itf;
import com.demo.buider.base.abstractbasepackage;
import com.demo.buider.model.mobilepackage;
/** * **2
* * @author maofw
* */
public class mobilebuilderimpl2 extends abstractbasepackage implements imobilebuilder
// 建造手機**的彩玲
public void buildmusic()
// 建造手機**的簡訊
public void buildshortinfo()
// 返回建造的手機**物件
public mobilepackage getmobilepackage()
}
3.4建立指導者
package com.demo.buider.director;
import com.demo.buider.itf.imobilebuilder;
import com.demo.buider.model.mobilepackage;
/** * 手機**指導者
* * @author maofw
* */
public class mobiledirector
return null;
}}
讓客戶訂購手機**
package com.demo.buider;
import com.demo.buider.director.mobiledirector;
import com.demo.buider.itf.mobilebuilderimpl1;
import com.demo.buider.itf.mobilebuilderimpl2;
import com.demo.buider.model.mobilepackage;
/*** 列印輸出**資訊
*/public static void printmessage(mobilepackage mobilepackage)
}
執行結果--話費:20.0簡訊:400條彩玲:天使
--話費:30.0簡訊:600條彩玲:大海
三該模式設汁原則
1分步驟建立複雜物件
2構造和表示分離
3單一職責原則
四使用場合
1當生成產品物件內部具有複雜結構時
2當複雜物件需要與表示分離,可能需要建立不同表示時
3當需要向客戶隱藏產品內部結構表現時
建造者模式
1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...
建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
建造者模式
建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...