配置

2011-11-13 10 views
1

のは、私は次の方法で2つのサービスクラスを持っていると仮定しましょう:配置

  • GroupService
    • にcreateGroup()
    • deleteGroup()
    • updateGroup()
    • findGroup( )
  • UserService
    • のcreateUser()
    • は、deleteuser()
    • updateUser()
    • findUser()

は今、私は論文クラスの美学考えています。 特定のグループのすべてのユーザーを検索するメソッドを実装するとします。 このような方法を担当するサービスクラスはどれですか?

つまり、戻り値はユーザー(または多分ユーザーの集まり)ですが、パラメーター(グループの名前を意味します)はグループです。 どのサービスクラスがこのメソッドを入れるのに適していますか?

答えて

1

"Membership"という別のクラスを作成し、特定のユーザーが所属するグループまたはグループのユーザーを検索するメソッドを用意します。私は少数の大きなクラスではなく、多数の小さなクラスの側で誤っている傾向があります。

2

いずれもありません。メソッドはクラスGroupに属し、createGroup()およびfindGroup()によって返されます。 GroupServiceのすべての引数が引数としてグループ名を取得するため、これらの2つのサービスだけがあなたのオプションであれば、GroupServiceを使います。引数よりも戻り値の型を変える方が普通です。

+1

'findUsersByGroupAndManager(String groupName、String managerName)'が必要なときはどうなりますか? –

1

あなたの考え方にもよりますが、特定のグループのユーザーを検索する場合は、実際には特定の条件でユーザーを検索したいので、ユーザーサービスに入れる方が良いですが、グループからいくつかの財産を取得したい場合は、それをグループサービスに入れることをお勧めします。あなたのクラス署名とその責任を示す必要があります。

2

ユーザーエンティティをリクエストしているので、私はユーザーサービスを提案します。サービスは、ユーザーが実装の詳細(永続化メカニズムなど)から保護する必要があります。ユーザーがグループサービスから返された場合、ユーザーの永続性に関する知識が必要になります。