Как я избегаю пространства имен и коллизии имени класса в “вертикально разделенных” блоках?

"Вертикально разделенным", я означаю называть пространства имен в честь модулей, а не "слоев"

Так,

  • MyApp. Ядро
  • MyApp. Учет
  • MyApp. OrderManagement
  • MyApp. HR

вместо,

  • MyApp. UI
  • MyApp. Бизнес
  • MyApp. Данные

Единственная проблема, с которой я сталкиваюсь, - то, что иногда те блоки могли бы иметь часть пространства имен, которое является тем же как имя типа.

Скажем, я создаю связанный с учетной записью модуль, и я называю его MyApp.Account.dll с основным пространством имен быть MyApp. Учетная запись. Неизбежно, я должен создать класс под названием Учетная запись. Затем я должен использовать псевдонимы типа или пространство имен.

Кроме того, чтобы быть очень творческим с именами, кто-либо еще сделал, испытывают сокращающие блоки этот путь и занимался проблемами коллизии имени?

5
задан 3 revs, 2 users 100% 6 July 2010 в 16:03
поделиться

1 ответ

Раньше я имел дело с этим двумя способами:

1) Множественное число пространств имен или создание их герундий там, где это необходимо (добавление суффикса -ing). Например, MyApp.Orders может безопасно содержать класс Order . (Точно так же используйте «MyApp.Account», а не «MyApp.Account»).

2) Добавляя Домен к пространству имен (немного неудовлетворительно, но эффективно).

9
ответ дан 14 December 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: