2011-11-13 34 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

由於您正在請求用戶實體,所以我建議用戶服務。服務應該屏蔽消費者的實現細節(持久性機制等),如果用戶是從組服務返回的,則需要知道用戶如何持久化。