Назвать коллизии между слоями

Поэтому я разрабатываю очень классное (и очень большое) 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

Это помогает?

Другие вопросы по тегам