2010-10-27 56 views
1

早上(下午,晚上,我不知道它是什麼時候UR讀出這個..大聲笑,但它的8:30 AM在這裏:))有關良好做法在Android和Java開發問題

我是昨天在關於Android編程和主講Meetup網站有關於如何創建與Android的數據庫訪問應用程序的樣本代碼..

我們談論各種類,方法等。

讓我們假設我們有所謂的MyItem數據庫中的表。我們創建一個類名爲MyItem.java具有相同的字段(類似於對象關係映射的概念)。

現在演示創建一個類調用MyItemList.java認爲是這樣的

package androidenthusiasts.androiddbproject; 

import java.util.ArrayList; 

// The MyList class is used to store MyItem objects in an ArrayList 
public class MyList { 

public ArrayList<MyItem> mylist; 

// NonParameterized Constructor - Called when class is created 
public MyList() 
{ 
    mylist = new ArrayList<MyItem>(); 
} 

// AddItem method 
public boolean AddItem(MyItem item) 
{ 
    mylist.add(item); 
    return true; 
} 

// GetCount method 
public int GetCount() 
{ 
    return mylist.size(); 
} 

// getItem method 
public MyItem getItem(int index) 
{ 
    MyItem item = null; 
    if (index < GetCount()) 
    { 
    item = mylist.get(index); 
    } 
    return item; 
} 

} 

這是一個對象,只有一個列表..和所有實現的方法是在ArrayList中..它是一個爲此列表創建新對象的良好實踐?定義ArrayList到哪裏你想用它作爲一個ArrayList更好?或者更多,我們是否應該爲擴展ArrayList的MyItem創建一個類?

StackOVerFlow的羣衆想什麼?

謝謝

+1

時刻提醒,當你開發Android,你應該避免創建太多的對象爲你的應用程序將移動設備,其中資源是非常有限的運行。 – Flo 2010-10-27 15:09:42

+0

@Flo是正確的,你有Android上的遊標 – fedj 2010-10-27 15:18:09

+0

事情是..用遊標你得到行..並將它存儲在「MyItem」對象中。假設你需要一個MyItems列表..你創建一個ArrayList的包裝器或你只是在你的類中使用ArrayList 本身..我個人贊成後者 – 2010-10-27 16:25:44

回答

1

我建議不要擴展ArrayList來創建MyList。比繼承更喜歡構圖。特別是內置的類不應該擴展。

定義一個單獨的類,而不是使用一個ArrayList中具有一定的優勢:

  • 您可以輕鬆地添加新的方法到類
  • 你可以讓你的類實現一個接口

在一般來說,添加新功能和維護代碼會更容易。此外,MyList類不會拋出IndexOutOfBoundsException異常,而是靜靜地返回null。

1

不,這不是一個好習慣。如果你想要一個MyItems列表,你只需要創建一個ArrayList,或者更好的,ArrayList<MyItem>

,如果你想添加一些功能給它(例如,驗證在MyItem領域添加它之前,如果它包含錯誤的數據拋出一個異常),你可以擴展的ArrayList。但大多數情況下,您可以使用java.util中已提供的類來完成您想要的任務。

另一件事 - 在Java命名約定,你小寫啓動方法名。