Назвать коллизии между слоями
Поэтому я разрабатываю очень классное (и очень большое) n-уровневое приложение.
В основном у меня есть следующие сборки:
Домен
Domain.Contracts
Сервисы
Services.Contracts
Presentation.Admin
Presentation.Web
Presentation.Core (используется администратором и сетью)
Я могу реализовать Presentation.Core.Contracts
Моя главная проблема, с которой я борюсь - это столкновения имен между различными слоями. То есть.
Services.Contracts.AccountServicesRequest
Domain.Contracts.AccountServicesRequest
У меня была такая же проблема с именами сервисов (в данном случае я просто использую классы как сервисы, а не WCF и т. Д.). То есть:
Services.Contracts.IAccountService
Domain.Contracts.IAccountService
Я решил эту проблему, сделав все "обработчики служб" на уровне домена IxxxServiceHandler, что дает мне следующее:
Services.Contracts.IAccountService
Domain.Contracts.IAccountServiceHandler
Тем не менее, я не смог решить эту проблему с объектами, которые передаются взад и вперед между слоями. Это, кажется, разбросано в нескольких местах через мое решение (я). Мне было просто любопытно посмотреть, были ли у кого-то такие же проблемы. Если да, то как вы решили их?
1 ответ
Да, я столкнулся с этой проблемой, но я исправлял ее достаточно быстро каждый раз.
Хорошее соглашение об именах классов может помочь. Избегайте использования одного и того же имени в классах на нескольких уровнях.
В качестве альтернативы вы можете использовать псевдонимы пространства имен, например, так:
services::IAccountService
domain::IAccountService
Это помогает?