比方說,我有一個簡單的todolist的:強制執行涉及多個項目的業務規則
interface ITodoList
{
ITodoItem Create(title);
IEnumerable<ITodoItem> Items {get;}
}
interface ITodoITem
{
void StartTrackTime();
void StopTrackTime();
}
現在,我想在一個時間(每用戶)執行,這樣時間只跟蹤一個項目。
我應該創建一個域名事件,如StartTrackTime
生成的ItemTimeTrackingStarted
。該事件將被ITodoService
拾取,其檢查當前用戶是否有任何其他時間跟蹤項目(並停止它們)。還是有更好的方法?
IMO,ITodoService將被命名爲ITodoPolicy,因爲它試圖強制執行的規則,而不是執行事務。如果跟蹤的TodoItem是第一個進入TodoList,那麼您正在使用FIFO集合,對吧? – lcardosobr 2012-04-20 14:41:33
是不是缺少像TodoList.AssignItemTo(用戶用戶)或UserTimeTracking.StartTrackingTimeFor(TodoItem項目)的東西? – 2012-04-29 12:23:33