是什麼讓你決定創建一個新的控制器,而不是添加更多的動作到現有的控制器?你在哪裏畫線,爲什麼?更多的控制器,但更少的動作或更少的控制器,但更多的動作
6
A
回答
5
當然不是進入圖片是動作的數量1 - 至少在「哦,我在這個控制器中有超過50個動作,讓我們開始另一個動作」的意義上。
準則2應該是:控制器是對相同類型對象進行操作的邏輯組(對於同一類型的型號可能是更好的定義)。如果碰巧你有一個功能如此豐富的模型,以至於有30個獨立的動作可以在它上面執行,請繼續並將它們放在同一個控制器中。
在硬幣的另一面:如果你有簡單的模型,並且你發現自己編寫的控制器只有幾個動作,這應該是對應用程序可維護性感覺良好的理由,而不是擔心的理由。
注:
¹當然,有很多動作控制器是可能的代碼濫用紅旗所以數量應該考慮的 - 只是不爲某種硬規則。
²這確實是一個指導方針 - 這裏的目標是建立一個可維護的系統,而不是遵循一些宗教經文。 「
5
應確定何時創建新控制器的主要因素是其執行的邏輯/功能。你要確保你separate concerns:
public class ProfileController { }
public class MainController { }
public class AccountController { }
public class ShoppingCartController { }
先前的每個控制器都用於協調它們相應的域名服務/模型及其視圖之間的通信。
2
作爲一般的經驗法則,我保留所有操作儘可能簡單,如果它們變大或變得太多,我會看到是否可以創建輔助函數。
如果需要,我爲每個DB實體都有一個控制器。
因此,例如,我想有一個用戶控制器,車控制器,控制器項目等等等等
我不認爲有任何特定的規則。它只是保持所有邏輯。如果它對你來說合乎邏輯,那麼通常情況下所有這一切都很重要,除非你在一個團隊中,那麼它對每個人都是合乎邏輯的。
希望這會有所幫助。
相關問題
- 1. 缺少控制器動作,但不是要求的行動
- 2. 更多通過更多控制器動作顯示每個資源的視圖
- 3. 更多計時器任務更少或任務更少的計時器
- 4. 動態更改控制器
- 5. 是否可以將控制器動作「映射」到另一個控制器動作,但更改某些參數?
- 6. Rails多控制器動作
- 7. 用更少的視圖控制器或更少的東西來做事情會更好嗎?
- 8. 從一個控制器動作多次更新模型
- 9. 從多個控制器動作更新相同視圖 - 導軌
- 10. 更少的API或更多的封裝?
- 11. 添加更多或更少+/-
- 12. 對XlFind的更多控制
- 13. UI路由器更改URL但不更改模板/控制器
- 14. Express.JS中的多動作控制器?
- 15. 更改控制器的URL?
- 16. 擁有更少的代碼但更少清晰,更多代碼和更清晰的代碼會更好嗎?
- 17. 有多少視圖控制器太多視圖控制器?
- 18. iOS5 UITabBar更改顏色的...更多導航控制器
- 19. Xcode如何在頁面控制器中製作更多點
- 20. 如何針對特定跨度製作切換(更多/更少)?
- 21. 使url更短的一些控制器和動作
- 22. 更新控制器上的param和調用動作點擊?
- 23. mvc3 - 如何從控制器更新Html.BeginForm()的動作屬性
- 24. 如何更改索引控制器的默認動作zend
- 25. 強類型的更新和創建控制器動作
- 26. React本地路由器(react-native-router-flux) - 更多的控制動作觸發
- 27. 控制器不更改的更新操作
- 28. 在多容器複製控制器上使用滾動更新的策略?
- 29. 自定義更多視圖控制器
- 30. AKSwiftSlideMenu添加更多視圖控制器
」控制器是對相同類型的對象進行操作的操作的邏輯組(同一類型的模型可能是更好的定義)「。這聽起來像1控制器1實體? – Elisabeth
@Elisa:聽起來是這樣,但也有可能是實體之間的關係如此密切以至於它們確實屬於同一個控制器。 – Jon
是什麼讓2個實體如此關閉以致它們進入同一個控制器? – Elisabeth