設計模式學習之路 建造者模式

2021-07-22 11:50:08 字數 1145 閱讀 3847

建造者模式,使我們經常提到乙個模式,而且很多地方都用到了,比如alertdialog建立使用builder。這也是建造者模式的體現,那麼我們平時在寫**的時候也可以使用這個方式,來梳理**邏輯。

建造者模式(builder):將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

建造者的uml類圖

基本**

absract class builder

class concretebuilder1 extends builder

@override

public void builderpartb()

@override

public product getresult()

}

class director

}

class product 

public void show() }

}

class concretebuilder2 extends builder

@override

public void builderpartb()

@override

public product getresult()

}

客戶端

static void main()

我們以建造小人為例子。先建立乙個抽象小人父類,裡面有建立頭,身體,手,腳等抽象方法。然後在新建乙個具體的胖小人實體類和乙個瘦小人實體類。新建乙個director指揮者,在裡面有個建立人類的方法,呼叫抽象類的方法,這樣只要通過指揮者建立人類,客戶端不需要建立人類的複雜過程,只需要呼叫指揮者類的建立方法就可以了。 

看到這兒不禁讓我想起了乙個相似的模式,那就是策略模式。感覺有點異曲同工之妙。

這裡有個造小人的**例子,很簡單。想看呢就下下來看看。

git:

學習設計模式 建造者模式

說明 如果你需要將乙個複雜的物件或功能的構建流程和表示分離,使得同樣的構建流程,也可以建立出不同的表示,例如麥當勞做炸東西,炸東西的流程是一樣的,但放入的材料不同,炸出來的東西不一樣 例如雞排 雞腿 雞翅等 需求 使用者要個炸雞腿 解決方式 a.定義乙個產品類 炸東西 b.定義乙個構建產品部分或過程...

設計模式學習 建造者模式

建造者模式主要用於分離物件的建立和配置。呼叫元件負責提供資料。並負責將配置資料傳遞給建造者。建造者代替呼叫元件去建立響應的物件。好處 何時使用 示例程式 新建乙個名為builder的 osx命令列程式 實現如下 class burger let customername string let veg...

設計模式學習 建造者模式

下面是建造者模式鏈式實現的 省略了getter和setter。使用建造者模式實現computer的例項化 如果使用構造方法初始化,引數將有5個,會使構造方法的使用過於複雜 public class computer override public string tostring public sta...