早上好)下午好,晚上好,我不知道你读这篇文章的时候几点了。lol,但现在是上午8:30 :)
我昨天参加了一个关于android编程的会议,演讲者有一个关于如何在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的大众是怎么想的?
谢谢
发布于 2010-10-27 20:43:20
我建议不要通过扩展ArrayList来创建MyList。最好是组合而不是继承。尤其是内置的类不应该被扩展。
定义单独的类而不是使用ArrayList有一些优点:
一般来说,添加新功能和维护代码会更容易。此外,MyList类不抛出IndexOutOfBoundsException异常,而是默默地返回null。
发布于 2010-10-27 20:44:17
不,这不是一个好的做法。如果需要MyItems列表,只需创建一个ArrayList,或者更好的方法是创建ArrayList<MyItem>。
如果您想向ArrayList添加一些功能(例如,在添加之前验证MyItem中的字段,如果它包含错误数据则抛出异常),则可以对其进行扩展。但在大多数情况下,您可以使用java.util中已经提供的类做任何您想做的事情。
另一件事-在Java命名约定中,方法名称以小写字母开头。
https://stackoverflow.com/questions/4033144
复制相似问题