這是一個有效的對象設計嗎? 我有一個域對象,我注入一個服務並調用一個驗證方法來更新對象的狀態,如果一切順利發送確認消息。代碼如下所示:在域對象方法中封裝服務調用
class Foo {
String bar
Service emailService
public boolean verify() {
bar = "foo"
if(this.save()) {
emailService.sendConfirmation()
}
}
}
Foo.get(1).verify()
在這樣的情況下調用emailService是否可以接受?有沒有一種設計模式,我可以按照這種情況使用。
謝謝 - 肯
我會說,你應該編碼到這裏的接口。這將使您的實體可以測試,並且如果需要的話可以很容易地更改服務。 ** public bool verify(IConfirmationService emailService)... ** – 2010-09-02 06:22:25
我非常喜歡域名事件模式,喜歡閱讀Udi Dahan的文章,主要是評論和他對他們的回覆。我也認爲,當域事件技術不能解決手頭問題時,應使用雙重調度技術。你還指出了我認爲個人是邪惡的服務定位器,因爲它給人一種錯誤的封裝感。它也使得測試地獄。感謝您的見解和答案。 – ken 2010-09-02 20:25:25