首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Android和Java开发中的良好实践的问题

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

Stack Overflow用户
提问于 2010-10-27 20:29:37
回答 2查看 314关注 0票数 1

早上好)下午好,晚上好,我不知道你读这篇文章的时候几点了。lol,但现在是上午8:30 :)

我昨天参加了一个关于android编程的会议,演讲者有一个关于如何在android中创建一个具有数据库访问功能的应用程序的示例代码。

我们讨论了各种类、方法等。

假设我们在数据库中有一个名为MyItem的表。我们创建一个名为MyItem.java的类,该类具有相同的字段(类似于对象关系映射概念)。

现在,演示者创建了一个名为MyItemList.java的类,如下所示

代码语言:javascript
复制
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的大众是怎么想的?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2010-10-27 20:43:20

我建议不要通过扩展ArrayList来创建MyList。最好是组合而不是继承。尤其是内置的类不应该被扩展。

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

  • 您可以轻松地将新方法添加到您的类中
  • ,您可以使您的类实现一个接口

一般来说,添加新功能和维护代码会更容易。此外,MyList类不抛出IndexOutOfBoundsException异常,而是默默地返回null。

票数 1
EN

Stack Overflow用户

发布于 2010-10-27 20:44:17

不,这不是一个好的做法。如果需要MyItems列表,只需创建一个ArrayList,或者更好的方法是创建ArrayList<MyItem>

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

另一件事-在Java命名约定中,方法名称以小写字母开头。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4033144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档