2011年6月2日 星期四

Android學習_使用SQLite時的程式架構(猜測)

前天Google突然跟我說:要開發Android的程式,就必須要會使用SQLite,所以這次的Android再出發,就決定以這個方向先做程式碼的測試。

參考了一些書上跟部落客們的程式碼範例,絕大部分有提到架構的人,都認為應該要寫一隻繼承於SQLiteOpenHelper的類別,來做資料庫的操作,架構大概長下面這樣:

Ola_SQLiteOpenHelper來負責處理Select、Insert、Delete與Update等等資料庫操作,然後將各項實際要操作的內容,寫在Ola_Activity裡面;所以依照這個架構,我們可以把Ola_SQLiteOpenHelper這個類別放到每一個專案裡面使用,而實際要操作哪一個表,篩選哪些資料都由Ola_Activity來給定。

如果類比成網頁程式,除了頁面與資料庫操作的類別以外,我們有可能針對這個專案寫一些實際操作資料庫內容的函式,也就是說一般在程式裡面會分成三層,也就是下面這樣:

所以概念上就是Ola_SQLiteOpenHelper負責對於SQLite的操作、DBHandler負責各個針對專案的所衍生的操作函式(或是說SQL語法),而Ola_Activity就是介面與呼叫那些經過DBHandler減化過的函式。

以一個取得名稱的動作來說:
1. 使用者輸入名稱並按下按鈕。
2. 於Ola_Activity呼叫GetName("名稱")
3. 於DBHandler組出符合Ola_SQLiteOpenHelper Select函式的變數帶入。
4. Ola_SQLiteOpenHelper 依照內容去執行Select函式並返回一個Cursor。

目的只有兩個:
1. 平常只要使用GetName()就可以取得名稱
2. SQL相關的語法都再同一個類別裡面,或許可以管理的更好?

兩層是一定比一層好,但是三層有沒有兩層好?我也不知道XD
或許下個月就覺得自己是呆子。

沒有留言:

張貼留言