Уровень доступа к данным - класс проектирования, где должна быть ответственность за создание сохранения.

StackOverflow https://stackoverflow.com/questions/8870031

Вопрос

Я разрабатываю уровень доступа к данным с помощью ADO.NET 2.0 и C #, Sql Server 2005. Я часто ломаю голову над тем, куда направить эти вызовы. Какой из перечисленных ниже способов я должен использовать для поддержки надежного кода?

Способ 1

родовое слово

Способ 2

родовое слово

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

родовое слово
Это было полезно?

Решение

Используйте метод 2. Класс Company не несет ответственности за чтение и запись из источника данных ( принцип единой ответственности ).Однако я бы даже пошел дальше, создав интерфейс ICompanyRepository, а затем создал реализацию для интерфейса CompanyRepository.Таким образом вы можете внедрить ICompanyRepository в класс, который должен сохранять / получать информацию о компании.Это также позволяет упростить модульное тестирование и создать другую реализацию в будущем (переключение с базы данных на файлы XML или что-то еще).

Другие советы

Если вы будете следовать принципу разделения проблем , вы воспользуетесь своим методом 2.

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

Это также приводит к созданию более компактных и более связанных классов, которые легче писать, анализировать и проверять на правильность.

Обратите внимание, что вы можете использовать ORM вместо того, чтобы вручную настраивать доступ к данным.слой.

Я бы поддержал второй вариант, потому что

  • сначала вы создаете свой общий кодовый тег
  • после упаковки вашего генерального кода тега

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top