Создание хороших интерфейсов, что должно быть включено и что должно быть исключено - PullRequest
0 голосов
/ 19 ноября 2009

Я обновляю веб-сайт в третий раз за 2 года, похоже, что это будет происходить все время, и несколько веб-сайтов используют одну и ту же БД. Я хочу использовать один и тот же код для всех из них и сделать его легко обновляемым в будущем. Поэтому я планирую написать несколько интерфейсов, а затем поместить корпоративный логин в службу, чтобы обеспечить согласованность данных и добавить некоторое модульное тестирование.

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

Например, у меня есть метод Add - ежу понятно, у меня есть Add в интерфейсе и add в Сервисе.

Затем у меня есть метод AuthenticateAccountManager, который принимает 3 параметра, должен ли он быть в обоих сервисах или только в Сервисе, и имеет простой метод Get в моем интерфейсе (например, по имени пользователя), а затем выполняет проверку по двум другим свойствам в Сервисе. .

У меня также есть QualifyPartner, который устанавливает для bool значение true, должно ли это быть только в Сервисе и снова иметь простой метод Get в моем Интерфейсе, пытаясь сохранить его как можно меньшим?

1 Ответ

1 голос
/ 19 ноября 2009

В соответствии с принципом Разделение интересов - AuthenticateAccountManager является операцией уровня обслуживания. Он должен зайти в ваш репозиторий, который вернет необработанные данные пользователя. Служба затем аутентифицируется или не основывается на том, что возвращается хранилищем.

Общее правило заключается в том, что хранилище отвечает за поиск и фиксацию данных только . Интерпретация и выполнение поведения на основе данных - это бизнес-логика.

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