Вопрос дизайна с фасадом - PullRequest
0 голосов
/ 05 июля 2011

У меня следующий вопрос:

В пакете A (отдельная dll) у меня есть ClassA.

В Facade (еще одна отдельная dll) у меня есть метод public IEnumerable GetAll () {}.

В веб-приложении я вызываю Facade.GetAll (), но чтобы получить IEnumerable, мне нужно сослаться как на Facade, так и на пакет A.

Интересно, можно ли ссылаться только на Фасад и в то же время получить IEnumerable (например, для создания интерфейса для ClassA в фасаде или как то так)?

В противном случае, если я ссылаюсь на обе библиотеки, я могу вызвать GetAll () из ClassA (теоретически или по ошибке). Но первоначальная идея заключалась в том, чтобы общаться с бизнес-классами через фасад, чтобы конечное приложение, такое как веб-сайт, не знало о существовании бизнес-классов?

1 Ответ

0 голосов
/ 06 июля 2011

Общий подход к решению этой проблемы заключается в использовании пакета, содержащего интерфейс, совместно используемый 1. вашей реализацией (ClassA) 2. вашим фасадом (или прокси-сервером или любой другой заменой) 3. приложением или классом, использующим его.

Таким образом, вы никогда не сможете использовать неправильную реализацию.И вы более независимы от конкретных классов.

...