設計模式 5種建立模式舉例

2021-08-22 07:53:21 字數 1230 閱讀 9579

為了加強對這五種建立模式的理解,我就拿電腦生產做為例子。 乙個電腦包含很多元件:cpu, disk, monitor, keyboard, mouse。

當然,首先我們有5種factory: cpufactory, diskfactory, monito***ctory, keyboardfactory, mousefactory。這裡採用的就是factory模式,例如cpufactory可以有intel, amd等等,diskfactory可以有maxto, seaga等。這幾個都是電腦元件的程產廠商,對於乙個電腦的組成廠商,它需要聲稱這幾個factory的例項,以便於每次需要乙個組建的時候就可以直接生成。於是乙個全球的管理全部電腦組建的abstract factory就出現了。 人如其名,這個抽象工廠真的是抽象的,並沒有這個組織。

class cpufactory

class intelcpufactory : public cpufactory

class amdcpufactory: public cpufactory

class mouseprototype

class singletonabstractcompute***ctory

顯然,這個abstract factory只需要乙個,因此它是singleton的。這樣不管在世界的任何地方,我們製造乙個 intelcpufactory,我都可以製造出來。

上面的abstract裡面cpu和disk都是聲稱了乙個factory,例如可以生成intelcpufactory,生成maxtodiskfactory。而由於很多mouse都是從乙個原型裡面做了一些修改,所以可以宣告原型法。

有了上面的定義後,我們就可以在程式的任何地方,來得到乙個cpu或者乙個disk,例如:我們在singletonabstractcompute***ctory中只生產intelcpu(這個可以寫死在**裡面,也可以配置),如果需要生產其他新種類的cpu,只需要修改這個singleton類就可以了。

現在組建都有了,我們需要一台電腦,怎麼辦呢?我們可以讓聯想公司做這件事情,這就是builder

class builder

class legendbuilder : public builder

這裡可以看出:builder和abstract factory的區別,可能他們的宣告都是一樣的,但是做的事情不一樣。abstract factory側重的是建立幾個東西,而builder側重的是把已經有的幾個東西組成乙個新的複雜的object。所以,intel是factory,而聯想是builder。

設計模式 建立模式

一 總括 話說設計模式 每一種設計模式都描述了乙個我們周圍不斷重 生的問題以及解決方案的核心,使用涉及模式可以避免 的重複勞動。設計模式的主要目標 提供 的可維護性和可讀性。設計模式的原則 開閉原則 擴充套件開放 修改關閉 依賴倒轉 依賴抽象,不依賴具體 黎克特制代換原則 子類必須能替換父類的每一種...

設計模式 建立模式

我們按照模式所關心的主要問題可以把模式大致分為三類 1.建立模式 此類模式 主要關注物件的產生因此我們把它們分為一類 2.結構模式 此類模式主要關心類和物件的 組合 3.行為模式 刻畫了類和物件交換及分配職責的方式 建立模式主要包括 單例模式,工廠模式,建造者模式,原型模式,生成器模式。結構模式主要...

JS高階 物件建立模式(5種)

前言 函式高階部分先看到這裡,接下裡看下物件導向高階部分 1 物件建立模式 2 繼承模式 主體 1 object建構函式模式 案例如下 測試結果如右圖所示 2 物件字面量形式建立 案例如下 結果如右側所示 3 工廠模式建立物件 案例如下 工廠模式問題 侷限性,驗證如下 4 自定義建構函式模式 案例如...