大話設計模式學習筆記 簡單工廠 工廠 抽象工廠

2022-04-20 03:11:23 字數 1014 閱讀 6847

主要內容**於書上第15章。

我認為,書中以資料庫的設計為例。

引言:如果不用設計模式,

那麼乙個產品,乙個類,類太多了,就難以管理,這就出現了簡單工廠,對外封裝乙個介面,在裡面用分支判斷處理多種產品建立。

第一要知道簡單工廠,利用分支判斷實現多種產品的建立。

缺點:增加新的產品時,就需要修改工廠類。

這就違反了開放封閉原則:軟體實體(類、模組、函式)可以擴充套件,但是不可修改。

第二:如何讓資料庫適用以下變化

q1:資料庫不止乙個,

q2:每個資料庫都增加(減少)表項

case1:使用工廠模式

工廠模式裡僅只有乙個工廠,

對於q1,得另外建立工廠,忽略2個工廠的共性。

對於q2,增加對應的表項,更改工廠裡對應的函式;

case2:使用抽象工廠模式

而抽象工廠模式,

對於樣例中,就是乙個資料庫,乙個工廠。

抽象工廠模式中,有乙個工廠介面,提煉出共性。較好的解決了q1。

q2問題,依然沒有解決。

case3:使用抽象工廠模式+反射+(配置檔案)

從列子中看,是取消了工廠介面。借鑑了簡單工廠的程式框架,建立乙個控制功能的類。

使用.net中的反射解決了多個資料庫物件的問題,智慧型生成物件;

這種方法徹底解決了乙個資料庫乙個工廠的問題,q1 問題徹底解決。

對於q2,影響只有乙個類。

不像單一的抽象工廠,要修改所有的工廠和工廠介面。

而使用配置檔案來配置資料庫,可以減少編譯**,大大方便重用。

------------

本人總結後,發現以下問題

1. c++中沒有反射概念,那麼如上反射的應用有沒有相應的替代方案。

2.書上15章,使用反射,其中刪除了所有的工廠類,新建乙個控制類,這裡工廠都沒有了,那怎麼標題標記為:「15.8 用反射+抽象工廠的資料訪問程式」

草草寫了下,請指教。

大話設計模式 簡單工廠模式 學習筆記

此篇為學習設計模式 簡單工廠模式 教材為 大話設計模式,同時很感謝作者,本書對自己幫助很大。過程中的一些源 筆記和感悟,如有理解不到位或者錯誤之處,敬請指教。簡單工廠模式例項 計算器 設計思想 1.建立乙個運算類 operation 其中有a b以及對a b的賦值屬性 並建立乙個可以返回結果的函式 ...

大話設計模式學習筆記 簡單工廠模式

目錄 抽象運算類 加法實現類 減法實現類 乘法實現類 除法實現類 簡單工廠類 客戶端 運算類 public abstract class operation public void setnumbera double numbera public double getnumberb public v...

大話設計模式 簡單工廠模式

學習c 1年的菜鳥,開始學習設計模式,學過了留下痕跡,歡迎一起談論學習。該模式總結 利用多型例項化不同的物件。include stdafx.h include include using namespace std class operate operate void setnumber1 int ...