"Вертикально разделенным", я означаю называть пространства имен в честь модулей, а не "слоев"
Так,
вместо,
Единственная проблема, с которой я сталкиваюсь, - то, что иногда те блоки могли бы иметь часть пространства имен, которое является тем же как имя типа.
Скажем, я создаю связанный с учетной записью модуль, и я называю его MyApp.Account.dll с основным пространством имен быть MyApp. Учетная запись. Неизбежно, я должен создать класс под названием Учетная запись. Затем я должен использовать псевдонимы типа или пространство имен.
Кроме того, чтобы быть очень творческим с именами, кто-либо еще сделал, испытывают сокращающие блоки этот путь и занимался проблемами коллизии имени?
Раньше я имел дело с этим двумя способами:
1) Множественное число пространств имен или создание их герундий там, где это необходимо (добавление суффикса -ing). Например, MyApp.Orders
может безопасно содержать класс Order
. (Точно так же используйте «MyApp.Account», а не «MyApp.Account»).
2) Добавляя Домен
к пространству имен (немного неудовлетворительно, но эффективно).