定的動作我的工作我的寵物項目,我有以下情形:如何正確模擬與豐富的模型方法,DDD和紅寶石
- 用戶可以創建文章,只有
- 成爲其所有者文章的所有者可以編輯給定的文章
我不知道如何正確建模。我不想擁有隻有屬性的User
和Article
等笨笨物品,但希望它們具有某些行爲。這是我想首先與它:
article = articles_repository.find(id)
if(article.changeable_by(user))
article.change(title, content)
articles_repository.save(article)
else
raise NoEditRights
end
我只有在這裏擔心的是,我需要檢查之前,我做修改,用戶可以修改。 I 另一種方法是將當前用戶傳遞給change
方法,並讓article
對其進行檢查並在用戶不允許更改時提出錯誤。
我也想是這樣的:
article = articles_repository.find(id)
article.as_user(user) do
article.change(title, content)
articles_repository.save(article)
end
,但我不知道這是否是任何好轉。
你會如何處理這種情況?如何在內部防止其他用戶更改文章我知道這非常簡單,但我想要掌握如何在跳入更困難的事情之前對這些案例進行建模。
編輯:一些更多的信息添加
所以這是內容發佈應用程序,用戶可以撰寫和發表文章,其他人可以閱讀和提出意見。
這是非常簡單的應用程序(只是一個玩具項目),我可以看到下面的限界上下文這裏:
- 發佈文章
- 編輯文章
- 一些別人認爲是不重要我猜(喜歡評論文章)
我不知道我是否應該爲每個環境引入不同的模型?
你提供的可能是相當優良或極其錯誤的兩種樣品它取決於一個問題:。究竟你的域名和它包含的是什麼界限?告訴我們更多關於它的信息,然後我可以在設計上添加我的觀點 –
添加了一些更多信息,但不知道是否足夠 – grafthez