关于Android和Java开发中良好实践的问题

时间:2010-10-27 12:29:37

标签: java android optimization

早上好(下午,晚上,我不知道你什么时候读这篇文章..大声笑但是早上8:30在这里:))

我昨天参加了一个关于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?或者甚至更多,我们应该为MyItem创建一个扩展ArrayList的类吗?

StackOVerFlow的质量是什么思考?

由于

2 个答案:

答案 0 :(得分:1)

我建议不要扩展ArrayList来创建MyList。最好选择合成而不是继承。特别是内置类不应该扩展。

定义一个单独的类而不是使用ArrayList有一些优点:

  • 您可以轻松地向班级添加新方法
  • 您可以让您的类实现接口

通常,添加新功能和维护代码会更容易。此外,MyList类不会抛出IndexOutOfBoundsException异常,而是以静默方式返回null。

答案 1 :(得分:1)

不,这不是一个好习惯。如果您需要MyItems列表,只需创建ArrayList,或者更好,ArrayList<MyItem>

如果要为其添加一些功能,可以扩展ArrayList(例如,在添加之前验证MyItem中的字段,如果它包含错误数据则抛出异常)。但大多数情况下,您可以使用java.util中已提供的类来执行您想要的操作。

另一件事 - 在Java命名约定中,您以小写形式启动方法名称。