Бизнес Логика + ASP.NET MVC

У меня есть приложение MVC, которое разделено на 3 уровня: - Презентация - ASp.NET MVC - Бизнес-логика - Здесь у нас есть сущности и объектные сервисы. У нас также есть средства отображения между объектами DAL и объектами BL - Data Access Layer - мы используем EF для запросов к базе данных. Теперь мы создали фабрику для объектных сервисов, и фабрика внедряется в презентацию позже, используя Unity. Каждый раз, когда я хочу сделать некоторую логику, я вызываю соответствующую службу, которая использует репозитории DAL для выполнения каких-то задач. Теперь глупый вопрос, давайте предположим, что я хочу проверить, могу ли я добавить пользователя с предоставленным псевдонимом. Псевдоним уникален в базе данных, поэтому, прежде чем добавить пользователя, я проверяю, существует ли пользователь с предоставленным псевдонимом. Итак, это простой запрос, который возвращает истину / ложь. Поскольку у меня нет никаких связей между уровнем представления и бизнес-уровнем, я проверяю это в сервисе. Но код метода сервиса просто выглядит так:

var exists = repository.NicknameExists(nickname);
return exists;

Приведенный выше код является странным, потому что он ничего не делает, просто вызывает метод и возвращает его значение. С другой стороны, у меня есть разделение проблем, поэтому мое решение хорошо организовано. Может кто-нибудь дать мне несколько советов, как мне решать подобные проблемы?

1 ответ

Решение

Я не вижу здесь никаких проблем. Это идеальный метод для меня:

public bool IsUserExists(string nickname)
{
    return repository.NicknameExists(nickname);
}

Я бы порекомендовал вам прочитать этот пост в блоге об уважительных причинах создания подпрограммы или главе 7.1 Code Complete 2ed.

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