编码实践 - 我应该使用哪种编码方法?

问题描述:

对不起,这样一个模糊的标题。没有想到好的一个。编码实践 - 我应该使用哪种编码方法?

现状:

  1. 具有用户对象的列表。
  2. 需要为UserInfo对象创建数组。
  3. UserInfo对象是根据User对象中的信息创建的。 (目前有这方法)

哪种情况比较好?

  1. 我是否应该将用户到用户的整个列表传递给UserInfo转换方法。
  2. 或者我应该循环用户列表并将每个用户对象传递给转换方法并获取UserInfo。

实例:

List<User> users = .....; 
UserInfo[] userInfos = getUserInfoFromUser(users); //(conversion method will loop and generate array, then return it.) 

List<User> users = .....; 
UserInfo[] userInfos = new UserInfo[users.size()] 
for (int j = 0; j < users.size(); j++) { 
    userInfos[j] = getUserInfoFromUser(users.get(j)); 
} 

在第一种方法中,我们通过一个大对象(用户的列表)作为参数,并在第二我们称之为相同的方法多个times.Which更好?

用户列表的大小范围是25-200个对象。

+0

在第一个版本userInfos = getUserInfosFromUsers(用户)没有。 get(j) – 2011-12-20 09:30:15

一下怎么样,需要一个User并返回转换方法,一个一个UserInfo(这可以,而且也应该是UserInfo一个构造函数),以及一个采用一个List,请问循环和内部调用第一一?

列表大小不相关。

+0

+1对产品开发很有帮助 – Vaandu 2011-12-20 09:32:04

+0

我同意 - 列表方法现在更方便使用并减少膨胀,但单一的''User'方法更模块化,并且如果您的要求改变或延长。 – OpenSauce 2011-12-20 09:34:40

我更喜欢第一种方法,因为它很简单,而且参数将是users对象的地址。所以在这种情况下,无论大小都不重要。

在这两种情况下,Java都会将引用传递给对象。在第一种情况下,它是对用户集合的引用,对第二种情况是对用户的引用。

我会推荐使用第一个选项:传递整个数组!

减少函数调用次数肯定会有所收益。

没有区别:在第一个版本中,函数实现将执行第二个版本。此外可能还想有一个User - > UserInfo函数。

我认为这取决于你会这样做的频率,因为你不想在你的代码中的多个地方重复相同的循环。

我建议建立两种方法,一种返回为单个用户和信息这对于用户的列表返回信息的其他:

public UserInfo[] getInfoForUsers(List<User> users) { 
    UserInfo[] userInfos = new UserInfo[users.size()]; 
    for (int j = 0; j < users.size(); j++) { 
     userInfos[j] = getInfoForUser(users.get(j)); 
    } 
    return userInfos; 
} 

public UserInfo getInfoForUser(User u) { 

}