Интерфейс в C # - PullRequest
       18

Интерфейс в C #

0 голосов
/ 09 сентября 2011

У меня есть четыре проекта, кроме уровня представления

  1. Уровень бизнес-логики
  2. Уровень интерфейса
  3. Модель объекта
  4. Уровень доступа к данным

У меня есть запрос на уровне интерфейса.В конкретном интерфейсе количество объявлений функций необходимо реализовать на уровне доступа к данным.Здесь у меня есть две путаницы

  1. Кажется, только один к одному (то есть одна интерфейсная функция на функцию класса уровня доступа к данным).

  2. Isдействительно ли необходим интерфейсный слой?

  3. Могу ли я удалить интерфейсный слой или требуется какая-либо оптимизация здесь?

Ответы [ 2 ]

3 голосов
/ 09 сентября 2011

Вам понадобится абстракция интерфейса, чтобы впоследствии вы могли поменять классы уровня доступа к данным для других конкретных классов - это особенно важно для модульного тестирования.Эти интерфейсы не составляют отдельный уровень, хотя они и представляют уровень доступа к данным.

Помимо этого, обычно выгодно рассматривать связь между уровнями как контракты, поэтому интерфейсы кажутся естественными.

2 голосов
/ 09 сентября 2011

Посмотрите на первое сообщение в блоге из серии, которую я недавно начал. Он охватывает только это (n-уровневая архитектура), аналогичный человек из SO задал очень похожий вопрос, вдохновив тем самым серию блогов .

Пост выше (он также включает в себя пример кода) показывает, как сделать это без интерфейсов, но интерфейсы делают вещи намного более гибкими и управляемыми в будущем. Итак, чтобы ответить на ваши вопросы:

1 & 2. Интерфейсы не требуются. Вы можете использовать 2-уровневую архитектуру. 3. Если вы выберете 2-уровневый, то да, в противном случае, если вы собираетесь использовать 3-уровневое решение, тогда интерфейсы в значительной степени необходимы.

SO сообщение, которое вдохновило его: Реализация метода Save для моего объекта

Обратите внимание, что мой SO ответ на этот пост никогда не обновлялся, потому что я помог джентльменам по скайпу и сделал для него пример специализированного решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...