2

我的 User 类中有一个静态 getUser($userID) 方法,它查询数据库并返回给定用户 ID 的 User 对象。

有时,我需要同时获得多个用户。我想出了两个选择:

  1. 创建一个 getUsers() 方法,该方法可以采用多个 ID 并执行一个查询。
  2. 创建一个 getUsers() 方法,它可以采用多个 ID,但使用 getUser 方法(多个 DB 查询)。

在这两种情况下,我都会返回一个 User 对象数组。但是如果用户 ID 有效或不存在应该怎么办?只是从数组中排除该用户?似乎很奇怪。

因此,获得以下问题的答案会很棒:

  • 我应该使用选项 1 还是 2?
  • 如果用户 ID 无效,应该怎么办,忽略它?还是抛出异常?

也可以随意批评静态方法 getUser() 的使用,我不知道该方法还能放在哪里,谢谢。

4

2 回答 2

0
use the first one like 
1)Create a getUsers() method which can take multiple ID's and does one query.
because it make efficient to your application rather than use the second one ,

if you use the second one it create a instance each time, it affect your application performance   so only here i suggest the first one 
于 2013-10-07T14:29:11.000 回答
0

这是我认为你不应该优化的东西,直到它成为一个瓶颈。

如果你把它分开,它会干净得多。事实上,我什至建议您创建另一个文件夹并将其称为集合。例如,在那里你有一个 UserCollection,它允许你迭代不同的用户集。然后使用 current() 方法返回一个用户对象。

对于 getUser() 部分,我会将用户对象之类的东西放入一个名为实体的文件夹中。这些对象处理单个用户的 CRUD 操作,而集合用于返回用户集(或单个用户)。

在实体部分,如果未找到某些内容,您可以抛出异常。集合应该只返回有效的 ID。

作为旁注,您还可以在使用迭代器时混合集合中的不同对象,这在某些情况下非常有用。

于 2013-10-07T14:48:16.990 回答