(願歲月清淨)
//產品,房子
public
class
product
public
void
setbuildera
(string buildera)
public string getbuilderb()
public
void
setbuilderb
(string builderb)
public string getbuilderc()
public
void
setbuilderc
(string builderc)
public string getbuilderd()
public
void
setbuilderd
(string builderd)
@override
public string tostring()
';}}
2.builder(抽象的建造者)
package com.kuang.builder;
//抽象的建造者:方法
public
abstract
class
builder
3.workerpackage com.kuang.builder;
//具體的建造者:工人
public
class
worker
extends
builder
@override
void
buildera()
@override
void
builderb()
@override
void
builderc()
@override
void
builderd()
@override
product getproduct()
}
4.directorpackage com.kuang.builder;
//指揮:核心,負責指揮構建乙個工程,工程如何構建,由它決定
//產品:**
public
class
product
public
void
setbuilda
(string builda)
public string getbuildb()
public
void
setbuildb
(string buildb)
public string getbuildc()
public
void
setbuildc
(string buildc)
public string getbuildd()
public
void
setbuildd
(string buildd)
@override
public string tostring()
';}}
2.builderpackage com.kuang.builder.demo02;
//建造者
public
abstract
class
builder
3.workerpackage com.kuang.builder.demo02;
public
class
worker
extends
builder
@override
builder builda
(string msg)
@override
builder buildb
(string msg)
@override
builder buildc
(string msg)
@override
builder buildd
(string msg)
@override
product getproduct()
}
4.testpackage com.kuang.builder.demo02;
public
class
test
}
5.執行結果product
23種設計模式 建造者模式
需要建立乙個複雜物件的時候,這個物件通過一定的步驟組合而成,並且步驟一步都不能少。玩家 客戶 告訴拳頭 指揮者 我想要乙個什麼樣的英雄,拳頭告訴手下的程式設計師去做乙個這樣的英雄,程式設計師去屬性庫 抽象建造屬性類 中找,符合這樣英雄的抽象屬性,然後具體去設計這個英雄的各種屬性。通過建構函式,讓客戶...
23種設計模式之建造者模式
建造模式的本質 分離了物件子元件的單獨構造 有builder來負責 和裝配 由diretor負責 從而可以構造出複雜的物件。這種模式適用於 某個物件的構建過程複雜的情況下使用。由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以做出不同的物件 相同的構建器,不同的裝配順序也可以做出不同的物件...
23種設計模式之建造者模式
主要作用 在使用者不知道物件的建造過程和細節的情況下就可以直接建立複雜的物件。使用者只需要給出指定複雜物件的型別和內容,建造者模式負責按順序建立複雜物件 把內部的建造過程和細節隱藏起來 例子 角色分析 建圖紙 記錄建房的方法,步驟 抽象的建造者 方法 public abstract class bu...