2011-11-13 32 views
1

假设我有以下方法两个服务类:服务的放置方法

  • GroupService
    • createGroup()
    • deleteGroup()
    • updateGroup()
    • findGroup( )
  • UserService
    • 的createUser()
    • deleteUser()
    • UpdateUser两个()
    • findUser()

现在,我一直在思考论文类的美感。 想象一下,我们想要实现一种搜索特定组的所有用户的方法。 哪个服务类负责这种方法?

我的意思是,返回值是一个用户(或可能是一组用户),但参数(这意味着组的名称)是一个组。 那么哪个服务类更适合放置此方法?

回答

1

我会创建另一个名为“Membership”的类,并具有以特定用户所属的组或组来搜索用户的方法。我倾向于在大量的小班而不是少量的大班上犯错。

2

两者都不是。该方法属于类Group,它由createGroup()和findGroup()返回。如果只有这两个服务是您的选择,那么请使用GroupService,因为GroupService的所有参数都将组名称作为参数。比参数更改返回类型的方法更为常见。

+1

当你需要'findUsersByGroupAndManager(String groupName,String managerName)'时会发生什么? –

1

取决于您的思维方式,如果您想搜索具有特定群组的用户,那么实际上您需要针对特定​​条件的用户进行一些搜索,因此最好将其放入用户服务中,但如果您想从团队中获得一些财产,最好把它放在团体服务中,你应该显示你的班级签名和他们的责任。

2

由于您正在请求用户实体,所以我建议用户服务。服务应该屏蔽消费者的实现细节(持久性机制等),如果用户是从组服务返回的,则需要知道用户如何持久化。