2011-09-03 28 views
1

我在寫一個Android應用程序,一本字典只是爲了好玩。我決定使用MVC作爲架構模式。我需要做很多查詢,因爲我想創建一個象Google這樣的istant搜索:每次用戶向EditText添加一個字母時,我都會查詢數據庫。
我想知道什麼是最好的解決方案,如果每次打開數據庫或保持它始終打開。前者可能會更好,因爲數據庫只有在嚴格需要時纔打開,後者應該更具性能。
還有另一種方法。因爲我使用MVC是將查詢數據庫的視圖。所以我可以在模型部分創建一個公共方法來在必要時打開數據庫,並在用戶找到該單詞時關閉它。但是這可能是一個好的解決方案嗎?數據庫中最重要的兩個功能(打開和關閉)將在視圖部分公開。這聽起來不太正確:它沒有任何信息隱藏。使用Android和MVC打開數據庫

您對這個邏輯和性能問題有什麼看法?

回答

1

如果我們純粹談論理論模式設計,事實是模型可能不應該暴露它從數據庫中獲取數據的事實。您可以很容易地在數據庫是否打開的模型中進行內部跟蹤,並在必要時打開它。

關於問題的表現方面,當涉及到這樣的問題時,只有的方式才能得到很好的答案就是衡量。這可能是保持數據庫打開不會有任何不良影響,你不會有任何問題,只是保持開放。這將是最容易和最快的解決方案可能比更可能。但是,保持打開狀態可能會佔用太多內存,或者使CPU保持忙碌狀態,或者出現其他一些副作用。

正如我所提到的,唯一真正擁有明確答案的方法就是衡量。除其他分析工具之外,您可以使用DDMS

+0

如果我需要打開數據庫,控制模型內部的好主意。簡單而有效!我會盡量保持數據庫的開放性,希望性能不會太差。感謝你的回答 :) – lastYorsh