設計模式筆記之 Factory

2021-09-05 14:19:06 字數 824 閱讀 4724

為了徵詢dip原則,在很多情況下都不能與具體類例項相關聯,用new關鍵字就違反了這一原則,當然一些不會改變的類,比如string這些是沒必要隔離什麼的。如果具體類是非常易變的,依賴就會帶來問題,那麼怎樣避免使用具體的類呢,這就是factory的用武之地。

factory模式的大致的意思是,建立具體類例項的職責由「工廠類」代辦,返回相應的介面,使用者只需要操作這些抽象後的介面即可,從而隔離與具體類的依賴。

在.net企業級開發中此模式最常用的地方莫過於dal層元件,此模式可以通過反射機制通過配置建立相應的dal例項,這樣應用程式就可以輕鬆的建立出支援多種資料庫的應用,現以此應用為例予以分析。

以下圖為例表現了此模式運用在dal層的機制:

其中:bll為一組呼叫的客戶端,它呼叫dalfactory

返回相應的idal

進行操作相應的方法。

idal

為一組依據客戶呼叫的方法介面,比如返回訂單號等等。

dalfactory

為工廠類,通過被bll

呼叫相應的靜態方法返回相應的idal

實現類例項。

sqlserverdal

、oracledal

分別為實現dal

的sqlserver

實現和oracle

實現,這裡面放置著與資料庫直接打交道的方法。

這樣,dalfactory就可以通過讀取配置檔案,依靠.net的反射機制建立相應資料庫的例項,對設計好的軟體來說,要改變資料庫只需要改變相應的配置即可。

設計模式之Factory

工廠模式主要是 為了建立物件而提供的介面。1.如下是乙個簡單的工廠類 在程式中,如果要例項化sample時.就使用 sample samplea factory.creator 1 就可。2.如下是更高一點的 抽象工廠模式。如果建立物件的方法變得複雜了,如上面的是建立乙個sample物件,這邊要是還...

設計模式之Factory

最近開始對設計模式產生了興趣,於是翻來 四人幫 的 設計模式 來看,發現很難懂,真不是我這小小的本科生能夠輕易理解的,算了,我還是先看看旁人的學習成果吧,拿來研究了一下,發現工程模式並不是很難 當然我只是說思想 挺容易上手的,閒話不多說,總結一下吧。模式名稱 工廠模式 別名 kit 說明 工廠模式包...

設計模式之Factory

工廠模式就是專門負責例項化大量相同介面的類。簡單的工廠模式用 head first 中的例子就要生產不同的比薩,只需要告訴工廠你要什麼樣的比薩,它就會給你生產出來。這樣的 如下 想一下簡單的工廠模式為我們做了什麼?相當於把生成物件的這個功能分離出去,也就是解耦讓 變得簡單。這樣做還有乙個好處就是,在...