2011-04-14 84 views
6

我將開始開發一個必須訪問數據庫的應用程序。通常需要實現哪種設計模式區域以使我的應用程序更加靈活,例如將DB客戶端從SQL更改爲Oracle。我應該在數據庫訪問應用中應用哪些設計模式

我相信執行一些查詢我可以實現模板方法模式。並且通過雙重檢查來獲得連接的單例模式就足夠了。

開始之前還有什麼我應該知道的嗎?

應用程序將在C#中開發,因此支持對象繼承和多態。

任何幫助表示讚賞。

回答

8

確保您的所有代碼都封裝在數據訪問層中。對接口進行編碼,以便如果您需要編寫新的數據訪問庫,則不必更改所有調用代碼。這將至少將所有數據訪問隔離到庫上。更改數據庫的可能性有多大?不要讓軟件變成複雜的東西,因爲這會讓生活變得更加困難。

+1

垃圾郵件接口就像沒有明天! – 2011-04-14 15:23:30

+3

+1不要讓軟件變成複雜的假設。無縫更改DBMS的能力很少是有用的設計目標。 – 2011-04-14 15:24:56

+2

感謝+1 @Captain--我經常遇到編寫軟件來處理幾十個根本就不會發生的情況! – tomasmcguinness 2011-04-14 15:26:25

1

有一個稱爲Data Access Object一個好的設計模式,你必須把它納入到C#。

總結:

的DAO實現與 數據源工作所需要的訪問 機制。數據源可以是 持久性存儲就像一個RDBMS,一個 外部服務就像一個B2B交易, 一個像一個LDAP數據庫存儲庫,或 通過CORBA 互聯網Inter-ORB協議(IIOP)或 低訪問的業務服務級插座。依賴於DAO的業務 組件使用 爲其客戶端提供的 DAO更簡單的接口。 DAO 完全隱藏其 客戶端的數據源 實施細節。由於DAO向客戶端公開 的接口在底層數據源 實施更改時不會更改 ,因此此模式 允許DAO適應不同的 存儲方案,而不會影響其客戶端或業務組件。 本質上,DAO充當組件和 數據源之間的 適配器。

+0

到數據訪問對象的鏈接已死亡。另一個好的是在這裏 - http://www.oracle.com/technetwork/java/dataaccessobject-138824.html – simonbor 2018-02-05 14:58:24

6

只有當您可以清楚地看到利益時,纔會摘錄「正在運行」的內容。
否則 - 這只是浪費時間。

不要這樣想:

我應該使用模式[X],因爲它可能會解決[Y]

這樣想:

哦廢話,再次得到了寫相同的東西。讓我們看看我們怎樣才能避免...

相關問題