設計模式 工廠模式(Factory Method)

2021-08-30 02:17:47 字數 1331 閱讀 9992

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使得乙個類的例項化延遲(目的:解耦,手段:虛函式)到子類。

——《設計模式》gof

以下**中 isplitter * splitter=newbinarysplitter();/違反了一條物件導向設計原則—依賴倒置原則(應該依賴於抽象,不應該依賴於設計細節),這一行**依賴了具體類,我們的目標是繞開new 帶來的問題(導致的緊耦合-依賴具體類)如何去解決呢?

class isplitter

};class binarysplitter : public isplitter;

class txtsplitter: public isplitter;

class picturesplitter: public isplitter;

class videosplitter: public isplitter;

class mainform : public form

};

通過虛函式將編譯時依賴轉化為執行時依賴

//抽象類

class isplitter

};//工廠基類

class splitte***ctory

};

class mainform : public form

void button1_click()

};

//具體類

class binarysplitter : public isplitter;

class txtsplitter: public isplitter;

class picturesplitter: public isplitter;

class videosplitter: public isplitter;

//具體工廠

設計模式 工廠模式(Factory)

除了使用new關鍵字以外,還有更多製造物件的方法。new意味著在例項化乙個具體的類,所以物件的方法是準確的實現,而非抽象的方法定義。因此這樣一來 將會缺乏彈性。我們針對介面程式設計,可以隔離掉以後系統中可能發生的一大堆改變,如果 針對介面來寫,那麼對於乙個方法的實現將會是多種多樣的。當 使用大量具體...

設計模式之Factory 工廠模式

工廠模式是很常見的一種模式,主要由三個元素構成 生產者 產品和購買者 1.生產者 根據產品名稱或者產品的特性生產相應的產品 2.產品 具有某種共性的產品,把產品的共性抽象到介面中,而每一種具體的產品針對本身特有的性質來實現介面方法 3.購買者 購買者向生產者訂購某種產品,生產者將產品生產出來交給購買...

設計模式 2 工廠模式(Factory)

個人而言我認為工廠模式是應用最為廣泛的一種模式了,工廠模式也屬於建立型模式,一般來說分為 簡單工廠模式 抽象工廠 abstactfactory 模式。這個模式有什麼好處呢?我們可以通過下面這個例子來 假設工廠生產一些了很多種產品,並且需要為這些產品設計很多的包裝,每個產品用來展示用各自的包裝設計展示...