2012-09-14 17 views
1

我正在開發一個基於Cocoa的應用程序,它將在用戶事務過程中對Postgres數據庫(使用PGSQLKit)進行多次調用。該應用程序是一個類的亭。我應該如何在Cocoa應用程序中進行數據庫調用以符合MVC?

我想知道的是在整個應用程序中進行數據庫調用的正確方法。本着MVC的精神,我知道我應該爲從數據庫返回的數據創建對象(我打算這麼做),然後使用這些對象。我需要澄清的地方是我應該將數據庫調用放在哪裏。

基本上,這涉及到我有這些問題:
- 爲了與數據庫進行交互,我應該創建一個單獨的數據庫控制器類來調用數據庫嗎?我覺得直接從視圖控制器進行數據庫調用並不合適。
- 假設我創建一個數據庫控制器,我的視圖控制器應該觸發數據庫控制器類並以這種方式進行數據庫調用嗎?
- 當應用程序加載時,我應該通過數據庫控制器連接數據庫並在用戶事務完成時關閉它?我將在整個交易中撥打幾個電話,所以我認爲我不應該每次關閉連接。

回答

1

- 爲了與數據庫進行交互,我應該創建一個單獨的數據庫控制器類來調用數據庫嗎?我覺得直接從視圖控制器進行數據庫調用並不合適。

正確。在某些情況下,您甚至可能在數據庫控制器上還有另一層模型對象。大多數應用程序不應該關心數據存儲在Postgres數據庫中,而不是其他方式。

- 假設我創建了一個數據庫控制器,我的視圖控制器應該觸發數據庫控制器類並以這種方式進行數據庫調用嗎?

一般是的。您的視圖控制器將觀察模型並在需要數據時告訴模型。該模型會讓觀察者(包括視圖控制器,儘管模型不關心他們是誰)知道相關數據何時變得可用或變化。

- 當應用程序加載時,我應該通過數據庫控制器連接數據庫並在用戶事務完成時關閉它?我將在整個交易中撥打幾個電話,所以我認爲我不應該每次關閉連接。

這是數據庫控制器的內部細節。通常這種對象會保持長久的連接。通常,該連接是在模型首次從數據庫中獲得所需的數據而不是「在應用程序啓動時」進行的。

相關問題