2013-01-08 49 views
1

我需要一些設計建議。設計 - 在哪裏打開,插入和關閉數據庫?

這裏是我的用戶故事:

作爲一個用戶,我要救我的工作時間到數據庫供以後審查。我希望它是簡單的,從主屏幕上點擊一個按鈕。

我在應用程序中處理這個問題的方式是,從我的主應用程序片段中,當用戶單擊一個按鈕時,它將調用一個工廠類,它將實例化正確的類(讓調用類爲「X」)這種類型的工作,並將其返回到與主要片段進行交互。

在類「X」構造函數中,我建立並打開數據庫連接,並在此類方法之一中向數據庫中插入新數據。

我的問題是 - 這是一個很好的設計?我會有內存泄漏嗎?有什麼我需要考慮的嗎?

我已經附加像幫助班流UML:

+-----------------+     +----------------------+ 
|MainFragment  |     |  Factory   | 
|-----------------|     |----------------------| 
|     |     | ChooseShiftObject | 
|     |+---------+----+ |      | 
| CheckIn()  |     |      | 
+-----------------+     |      | 
            +----------------------+ 
               + 
               | 
               | 
               + 
               | 
             + + 
            +-----------------------+ 
            |  Shift   | 
            |-----------------------| 
            | DB.Open()   | 
            | DB.Insert(bla, bla. bla) 
            | DB.Close()   | 
            |      | 
            |      | 
            |      | 
            +-----------------------+ 

回答

1

有一件事你應該知道在android系統的數據庫。你必須創建你的SQLiteOpenHelper對象作爲單例,否則你將在多線程環境中出現問題。你可以找到一個解釋herehere爲什麼你必須這樣做。

+0

謝謝你,我的SQLiteOpenHelper類就像他在書中描述的Reto Meir一樣,我知道它被緩存了。 – Yosi199

相關問題