建造者模式

2021-07-05 17:55:02 字數 4547 閱讀 7615

趁著這幾天不大忙,

趕快把還沒有速解決的問題解決一下,比如

,寫一點設計模式

,剩下的時間寫寫

sql server

的總結,

然後準備面試!加油

!今天的主角時候建造者模式,

按照慣例咱們還是用乙個真實的場景來模擬

,比如我們宿舍的大神們

,會根據自己喜歡的方向尋找一些工作崗位,比如

:本屌喜歡林志玲

,麻倉優

,蛋子喜歡

asp.net,oracle!

還有大春喜歡

wp7,cocos-2d.

宿舍的大神們都喜歡做一些利國利民的好事,

,和大家一起分享一下最近的學習心得

.而本屌呢

?喜歡分享點鏈結.

首先,需要有大春這個類

,我們這裡叫

mrchun,

有了mrchun

,按照大春的習慣

,他喜歡

:第一步:

給大家先演示一下今天講解內容的效果

.方法名

:demonstrationefect()

第二步:

根據事先準備的

ppt講解原理

.方法名

:principle()

第三步:

開啟工程分析實現功能的**

.方法名

:analysisoffcode()

**實現如下

:

/// /// 大春

///

public class mrchun

//講解ppt

public void principle()

//分析**

public void analysisofcode()

}

的web

專案方面的知識感興趣,,

那麼我們還是需要乙個類叫做蛋子

,定義名為

:mrdan,mrdan:

第一步:(

與mrchun

一樣),

先給大家演示一下今天講解內容的效果

.方法名

:demonstrationefect()

第二步:

現場**實現

.方法名

:coding()

第三步:

分析與回顧關鍵點

.方法名

:analysisofkeypoints()

**實現如下:

/// /// 蛋子

///

public class mrdan

//**實現

public void coding()

//分析與回顧關鍵點

public void analysisofkeypoints()

}

這個時候咱們可能會遇到乙個問題,

就是每個人的講解方式都有優點

,我們需要把每個人講解過程的優點都提取出來融合成乙個固定的規範流程

,

.第一步:

給大家先演示今天講解內容的效果

.

第二步:ppt

給大家講解必須的基礎知識與原理

.

第三步:

**實現內容

.

第四部:

關鍵點分析

.so,我們如何改造我們上邊的**呢

?既然我們可以把乙個通用的流程分析出來,,

我們都可以這個流程來錄製

,那麼在這裡就體現出一種模式的優勢

----

建造者模式

.先來看定義:

將乙個複雜物件的構建與他的表示分離

,使得同樣的構建過程可以建立不同的表示

.建造者模式類圖如下:

指揮者類

(dicrector):

用來包含乙個

builder

的抽象類

,,用來表示使用哪個具體的建造者類

.

抽象建造者類

(builder):

用來抽象

product

類構建的流程

.

具體的建造者類

(concretebuilder):

用來實現具體建造產品的細節

.

產品類

(product):

用來承載建造好產品的細節

.以我們上邊的場景來看,,(

產品product),

各位觀眾就是指揮者

,蛋子和大春就是具體的建造者了

.那麼我們就先把這個抽象的步驟類實現吧

,也就是建造者模式中的抽象建造者類

(builder).

**如下:

/// /// 抽象建造者類

///

public abstract class vidiobuilder

抽象好了通用的流程當然接下來就可以實現具體根據流程錄製的高手們,.

**如下:

///

public class vidioproduct

public void playvidio()}}

,下來就是蛋子和大春出場了.

**如下:

/// /// 大春

///

public class mrchun : vidiobuilder

//ppt原理講解

public override void principle()

//**實現

public override void coding()

//分析回顧

public override void analysisofkeypoints()

public override vidioproduct getvidio()

}/// /// 蛋子

///

public class mrdan : vidiobuilder

//ppt原理講解

public override void principle()

//**實現

public override void coding()

//分析回顧

public override void analysisofkeypoints()

public override vidioproduct getvidio()

}

那麼是誰邀請我們的高手呢

?當然是我們的指揮者了(觀眾

),.

**如下:

/// /// 指揮者

///

public class guanzhong

}

ok,接下來我麼看一下

main

函式是如何呼叫的吧

,**如下:

class program

}

最後的輸出結果我就不多說了吧,

大家按照上面的內容一點一點的弄

,自己看看輸出結果怎麼樣

,其實這樣大家應該能看到

,**出現了冗餘

,而且是大量冗餘

,怎麼辦?想想

.建造者模式與工廠模式類似,

他們都是建造者模式

,適用的場景也很相似

.一般來說

,如果產品的建造很複雜

,那麼請使用工廠模式

;如果產品的建造更複雜

,那麼請使用建造者模式

!

建造者模式

1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...

建造者模式

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

建造者模式

建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...