像www.halifax.co.uk這樣的網站提供不同的產品類別,例如抵押貸款和儲蓄。抵押和儲蓄產品將包含不同的數據字段。這不適合在大多數情況下使用單個產品控制器。單個產品控制器或每個產品類別的控制器?使用不同的產品類別創建ASP.NET MVC應用程序
0
A
回答
1
簡單的答案是,它取決於每個產品類別帶有的「業務邏輯」的數量。您必須查看您的域模型,並查看您的產品類別在您的域中的真正含義。
以拍賣網站爲例,重點在於產品。該類別實際上只是可用於標記產品的字符串層次結構。由於可用的類別也日益增長和縮小,因此爲每個類別創建一個控制器會造成維護噩夢。
在銀行網站的情況下,重點在於每個單獨的產品類別,如「儲蓄賬戶」,「信用卡」等。這些不同類別之間存在很多差異,因此創建單個控制器更有意義爲他們。
1
一方面,這些產品類別中的每一個可能具有不同數量和類型的字段。然後一個簡單的方法是擁有不同的控制器,每個控制器導致不同的視圖,強烈地鍵入不同的模型。 「抵押」將是一個模型,具有自己的字段,以及其自己的索引,詳細信息,編輯和刪除視圖以及MortgageController。類似的儲蓄。這是使用強類型視圖的ASP.NET MVC應用程序最簡單的方法。請注意,即使在這種情況下,通過對控制器(以及模型和當然視圖)的仔細維護和重構,可以消除或最小化複製。
但是,我建議分析這些產品類型中的每一個的行爲。如果實際上它們都表現相同,那麼有辦法解決不同數量或類型的問題。例如,所有不同類型的模型都可以繼承一個通用的基類,或者實現一個通用的接口(後者可能是兩種解決方案中最好的 - 但在這種情況下,如果您偏好繼承或組合,則很難說。這些只是兩種可用於開發「弱類型」視圖和控制器的選項。
我不能說你是否應該按照你給出的簡要描述去做某種方式,但我確信答案是在模型的行爲中(而不是它們的結構)。根據我個人的經驗,行爲相同的模型(例如:它們都暴露相同的CRUD操作)應該以單一方式處理,但行爲差異(例如:當特定類型的模型正在被驗證時要驗證的不同業務規則保存)需要在一個接一個的情況下處理。 HTH
相關問題
- 1. drupal創建產品類別將產品分類
- 2. 如何使用BigCartel「變量」調用不同的產品類別
- 3. 產品創建不起作用(在Spring MVC下使用JPA)
- 4. 如何使用ASP.Net MVC創建多租戶應用程序?
- 5. 在我的ASP.NET MVC應用程序中爲不同城市創建子域
- 6. 如何創建一個可重用的Asp.Net Mvc應用程序?
- 7. 如何在應用程序購買中創建產品ID
- 8. 爲iPhone應用程序創建產品密鑰? [iPhone SDK]
- 9. 的asp.net MVC應用程序
- 10. WooCommerce:使用產品類別shortcode
- 11. asp.net mvc應用程序和asp.net web應用程序有什麼區別
- 12. 加入產品對比magento使用產品屬性(類別)
- 13. Facebook應用程序使用ASP.Net MVC
- 14. 在asp.net中創建「可插拔」的應用程序mvc
- 15. 如何使用不同的主題創建Tablet應用程序?
- 16. Magento 2:產品導入不會創建子類別
- 17. 在應用程序貨幣的應用程序產品
- 18. ASP.NET MVC路由:產品類別和子彈
- 19. 創建產品
- 20. 使用SharpDevelop構建ASP.NET MVC應用程序的任何經驗?
- 21. 我不能按產品類別分類產品id
- 22. 在asp.net MVC應用程序
- 23. ASP.NET MVC子應用程序
- 24. 的has_many:通過 - 匹配現有的產品類別,否則創建新的產品類別
- 25. 創建語音識別應用程序
- 26. 爲asp.net mvc應用程序創建鏈接
- 27. 從頭開始創建ASP.NET MVC應用程序
- 28. 爲ASP.NET MVC 4應用程序創建健康檢查頁面
- 29. 從ASP.NET MVC應用程序創建Outllook約會
- 30. ASP.NET MVC 3應用程序不工作