2

User クラスに静的な getUser($userID) メソッドがあり、データベースをクエリして、指定されたユーザー ID の User オブジェクトを返します。

同時に複数のユーザーを取得する必要がある場合があります。私は2つのオプションを考え出しました:

  1. 複数の ID を取り、1 つのクエリを実行できる getUsers() メソッドを作成します。
  2. 複数の ID を取得できる getUsers() メソッドを作成しますが、getUser メソッド (複数の DB クエリ) を使用します。

どちらの場合も、User オブジェクトの配列を返します。しかし、ユーザー ID が有効であるか存在しない場合はどうすればよいでしょうか? そのユーザーを配列から除外するだけですか? 奇妙に思えます。

したがって、次のような回答を得ることができれば幸いです。

  • オプション 1 または 2 を使用する必要がありますか?
  • 無効なユーザー ID が発生した場合はどうすればよいですか?無視してください。または例外をスローしますか?

静的メソッド getUser() の使用についても自由に批判してください。そのメソッドを他にどこに置くべきかわかりません。ありがとう。

4

2 に答える 2

0

これは、ボトルネックになるまで最適化すべきではないと思います。

分解するとよりすっきりします。実際、別のフォルダーを作成して、たとえばコレクションと呼ぶことをお勧めします。そこには、たとえば、さまざまなユーザーのセットを反復処理できる UserCollection があります。current() メソッドを使用して、ユーザー オブジェクトを返します。

getUser() の部分では、ユーザー オブジェクトのようなものをエンティティと呼ばれるフォルダーに入れます。これらのオブジェクトは、1 人のユーザーの CRUD 操作を処理しますが、コレクションは一連のユーザー (または 1 人のユーザー) を返すために存在します。

エンティティ部分では、何かが見つからない場合に例外をスローできます。コレクションは有効な ID のみを返す必要があります。

補足として、イテレータを使用するときに、コレクション内に異なるオブジェクトを混在させることもできます。これは、場合によっては非常に便利です。

于 2013-10-07T14:48:16.990 に答える