定義:將乙個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。舉例乙個:
肯德基食品包含:漢堡(20元)、薯條(12元)、炸雞翅(16元)、蛋撻(9元)、可樂(10元)建立食品介面(由於需求上只是列印名字和計算**,那麼飲料和食品並沒有分開):下面有需求,提供**的自由組合,並列印出最終**。
public
inte***ce
food
建立漢堡(20元)、薯條(12元)、炸雞翅(16元)、蛋撻(9元)、可樂(10元)實體類:
public
class
hanbao
implements
food
@override
public
intgetprice()
}public
class
shutiao
implements
food
@override
public
intgetprice()
}public
class
zhajichi
implements
food
@override
public
intgetprice()
}public
class
danta
implements
food
@override
public
intgetprice()
}public
class
kele
implements
food
@override
public
intgetprice()
}
建立**類(建造者模式核心):
**類構造方法對外隱藏,只能通過builder來建立
public
class
taocan
private
taocan
(list
list)
public
void
showdetail()
system.out.
print
("**包含: "
+name.
tostring()
+"\n");
system.out.
print
("**總**: "
+price+
" 元\n");
}public
static
class
builder
public taocan build()
}}
點餐:
public
class
test
}
列印結果:
**包含: 漢堡可樂
**總**: 30 元
這裡的特點為:
每個單品是不變的(漢堡、薯條。。。)與抽象工廠模式的區別:構建過程是不確定的(隨意組合)
抽象工廠模式的本質是解決介面呼叫的分配問題,而建造者模式本質是解決組合的不確定性問題。抽象工廠模式工廠一旦確定,製造的產品是不可變的,而建造者模式根據使用者呼叫不同可以生產出不同產品。
java設計模式之建造者模式
概念 建造者模式是指把乙個複雜物件的構建和表示分離,就像建房子一樣,每乙個房子的建造流程都是相同的,但是卻會有很多形狀不一,樣式不同的房子,這裡的房子實際上就是房子這個物件的表示,建造的流程就是房子物件的構建 建造者模式的構成部分 1.builder介面 builder介面設計要表示物件的構建流程,...
Java設計模式之建造者模式
builder模式也叫建造者模式或者生成器模式,是由gof提出的23種設計模式中的一種。builder模式是一種物件建立型模式之一,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承和過載的方式,動 態地建立具有復合屬性的物件。具體的構建物件 房子 public class h...
JAVA設計模式之建造者模式
分離物件子元件,子元件單獨構造 由builder來負責 和裝配模式 由director負責 從而可以構造出複雜物件。這個模式適用於某個物件構造特別複雜。由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以生產不同的物件的物件 相同的構建器和不同的裝配順序也可以構造不同的物件,這樣實現了構建演...