設計模式學習(工廠模式)

2021-07-14 12:12:02 字數 1657 閱讀 3130

這裡說的工廠模式是簡單工廠模式和抽象工廠模式,兩者有一定的區別,也有共同之處。

上述過程是開閉原則的乙個典型體現。

在下圖的例子中,factory類依賴具體物件的抽象來建立具體的物件(dell,sony)。這乙個過程帶來的好處就是實現了factory類與具體產品之間的解耦合。客戶端可以自由的通過factory類來建立物件實體。

案例**:

#include 

#include

using

namespace

std;

class absproduct

;class sonyproduct : public absproduct

};class dellproduct : public absproduct

};class factory

};int main()

分析上述過程,假設現在我們要新增乙個具體的產品,那麼需要修改哪些部分呢?

上述兩步就可以實現乙個新產品的新增,但是修改factory類這一點上違背了開閉原則(我們只想新增**,不想修改原來的**!)為了解決這個問題,抽象工廠就出現了。

這個改造過後,我們僅僅去新增我們需要的產品,不用去修改原來的**

#include 

#include

using namespace std;

class absproduct

;class sonyproduct : public absproduct

};class dellproduct : public absproduct

};class factory

;class dellfactory : public factory

};class sonyfactory : public factory

};int main()

抽象工廠就是在上述的基礎上,對工廠類進行重構,使得工廠類不僅僅產生出單一的產品。比如下例。

在實際應用中,簡單工廠模式使用的非常普遍。比如乙個pacs系統,假設系統需要在多家醫院執行,然而各家醫院使用的資料庫又是不同的(一般為oracle或者db2)。為了使得**容易維護和管理,資料的訪問就可以使用簡單工廠模式進行構建。

在博主接觸的實際專案中,為了相容不同的資料庫就採用了上述的做法。指定的資料庫型別寫在配置檔案中,程式啟動時去讀配置檔案,然後判斷建立什麼資料庫的例項。這個過程方便了開發人員對**的維護和管理。

設計模式學習 工廠模式

工廠模式是較常見的一種設計模式 一 基本特點 工廠模式可分為簡單工廠模式,工廠模式和抽象工廠模式,它們的思路和實現都很相似.基本特點為至少包括以下三個類 工廠類 用new操作符建立各種產品類 抽象產品類 各產品類的基類,定義了產品的介面,具體產品類 抽象產品類的子類,包含了具體實現 使用者在使用時通...

設計模式 工廠模式(學習)

在程式的世界裡,就像射鵰英雄傳一樣,我們的技能就像是武功一樣,我們只有不斷去學習練習才能有機會像郭靖一樣成為 天下第一 我認為技能和武功是很類似的,也有外功和內功,武俠之內功好比是我們技能演算法 武俠的外功好比是我們技能中某一語言的語法 武功秘籍好比是我們每種語言都有api和文件 武俠的勤加練習好比...

設計模式學習 工廠模式

工廠模式 常用的工廠模式包括三種 簡單工廠 普通工廠以及抽象工廠模式。1 簡單工廠模式 package com.demo.factory 介面類 public inte ce shapepackage com.demo.factory public class circle implements s...