安置服务方法

时间:2011-11-13 17:46:20

标签: oop coding-style

假设我有两个服务类,使用以下方法:

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

现在,我正在考虑这些课程的美学。 想象一下,我们想要实现一个搜索特定组的所有用户的方法。 哪种服务类负责这种方法?

我的意思是,返回值是用户(或者可能是用户的集合),但参数(表示组的名称)是一个组。 那么哪个服务类是放置此方法的更好的地方?

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我建议使用用户服务,因为您正在请求用户实体。服务应该保护消费者免受实现细节(持久性机制等)的影响,如果用户是从组服务返回的,则需要了解用户的持久性。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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