設計模式之建造者模式

2021-08-09 17:08:43 字數 2479 閱讀 3426

定義:

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

角色 在這樣的設計模式中,有以下幾個角色:

1、builder:為建立乙個產品物件的各個部件指定抽象介面。

2、concretebuilder:實現builder的介面以構造和裝配該產品的各個部件,定義並明確它所建立的表示,並提供乙個檢索產品的介面。

3、director:構造乙個使用builder介面的物件,指導構建過程。

4、product:表示被構造的複雜物件。concretebuilder建立該產品的內部表示並定義它的裝配過程,包含定義組成部件的類,包括將這些部件裝配成最終產品的介面。

下面我們來看看建造乙個變形金剛的過程:

1:建造變形金剛的頭部

2:建造變形金剛的身子

3:建造變形金剛的腿

因為變形金剛有很多種類,我們今天造大黃蜂和擎天柱。

首先,我們來畫乙個圖來表示一下:

然後我們給出**:

builder介面:

package builder;

public

inte***ce builder

package builder;

//大黃蜂builder

public

class

anatomybuilder

implements

builder

public

void

createhead()

public

void

createbody()

public

void

createfoot()

public robot createrobot()

}

package builder;

//擎天柱builder

public

class

optimusprimebuilder

implements

builder

public

void

createhead()

public

void

createbody()

public

void

createfoot()

public robot createrobot()

}

package builder;

//機械人產品

public

class robot

public string gethead()

public

void

sethead(string head)

public string getbody()

public

void

setbody(string body)

public string getfoot()

public

void

setfoot(string foot)

}

package builder;

//大黃蜂機械人

public

class

dhfrobot

extends

robot

}

package builder;

//擎天柱機械人

public

class

qtzrobot

extends

robot

}

package builder;

//指導構建過程類

public

class director

}

package builder;

//test方法

public

class test

}

過程:—>new乙個指導構建director例項—>dr呼叫指導類方法

—>buildrobot(new乙個需要建立的機械人builder(在new的時候該builder的建構函式new對應的機械人例項))

—>buildrobot方法連續呼叫對應機械人builder的create方法為我們的機械人例項賦值—>最後呼叫createrobot返回這個例項。

設計模式之建造者模式

軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟 設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設 計模式 和...

設計模式之建造者模式

建造者模式也叫生成器模式,是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承或過載的方式,動態的建立具有復合屬性的物件。應用場景 物件的建立 builder 模式是為物件的建立而設計的模式 建立的是乙個復合物件 被建立的物件為乙個具有復合屬性的復合物件 關...

設計模式之建造者模式

在做服務介面的時候,往往在業務處理之前需要做業務校驗,格式校驗等業務前處理。這些介面有個相同的特徵,就是必須經過這些處理步驟之後才能做核心的業務處理,拓展的服務介面也必須經過這些處理。基於這個特徵,我們就來分析一下設計模式中,建造者模式。我們先建乙個基礎的服務類 public abstract cl...