簡體   English   中英

命名空間的名稱和模型沖突

[英]Names of namespaces and model conflict

根據Microsoft准則

X請勿對名稱空間和該名稱空間中的類型使用相同的名稱。

遵守該規則似乎是強制性的,但並不是那么容易。 為了演示我的問題,讓我們采用通用Account功能。 假設有一個Account作為抽象基礎,其中包含一些其他功能,例如Inbox以及兩個實現UserDevice 當然,每個學習不足的人都需要一些模型。

Account
+--- Account.cs
+--- AccountController.cs
+--- Inbox
|        +--- Inbox.cs
|        +--- InboxController.cs
|         \--- Message.cs
+--- Device
|       +--- Device.cs
|        \--- DeviceController.cs
+--- User
        +--- User.cs
         \--- DeviceController.cs

該結構顯然在名稱空間(文件夾名稱)和類(模型名稱)之間存在命名沖突。 通過將主要功能Account名稱更改為更像Identity名稱,我可以輕松解決第一個沖突,但是仍然無法解決另外兩個( UserDevices )沖突。 為避免出現此問題,我是否總是需要為每個功能都找到“更好的名稱”?

請記住,我要遵循folder-by-feature結構,因此僅為模型創建新的文件夾/命名空間是不可行的。

該准則實際上稱為“框架設計准則”。 它們旨在供編寫庫供他人使用的人使用。 它們是准則,不需要您遵循它們。 它們本質上明確了代碼用戶的期望,而不是必須要做的。

在鏈接到的同一頁面上的准則是“考慮在適當的地方使用復數名稱空間名稱”。 接下來可以解決您的大多數問題。

StyleCop有一個准則,即不要創建少於五個類型的名稱空間。

您的特定問題可以通過調用命名空間帳戶並在其中放置所有類來解決。 僅在增加價值的情況下添加新的名稱空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM