Уровень доступа к данным - класс проектирования, где должна быть ответственность за создание сохранения.
-
28-10-2019 - |
Вопрос
Я разрабатываю уровень доступа к данным с помощью ADO.NET 2.0 и C #, Sql Server 2005. Я часто ломаю голову над тем, куда направить эти вызовы. Какой из перечисленных ниже способов я должен использовать для поддержки надежного кода?
Способ 1
родовое словоСпособ 2
родовое слово, и я бы использовал другой класс, как показано ниже, для доступа к основным данным.Как показано ниже
родовое словоРешение
Используйте метод 2. Класс Company не несет ответственности за чтение и запись из источника данных ( принцип единой ответственности ).Однако я бы даже пошел дальше, создав интерфейс ICompanyRepository
, а затем создал реализацию для интерфейса CompanyRepository
.Таким образом вы можете внедрить ICompanyRepository в класс, который должен сохранять / получать информацию о компании.Это также позволяет упростить модульное тестирование и создать другую реализацию в будущем (переключение с базы данных на файлы XML или что-то еще).
Другие советы
Если вы будете следовать принципу разделения проблем , вы воспользуетесь своим методом 2.
Наличие разных обязанностей в разных классах действительно помогает в создании тестируемого и поддерживаемого кода.
Это также приводит к созданию более компактных и более связанных классов, которые легче писать, анализировать и проверять на правильность.
Обратите внимание, что вы можете использовать ORM вместо того, чтобы вручную настраивать доступ к данным.слой.
Я бы поддержал второй вариант, потому что
- сначала вы создаете свой общий кодовый тег
- после упаковки вашего генерального кода тега
Итак, в этом случае вы отделяете данные от функций, которые с ними работают, что значительно упрощает создание кода кода и распределяет обязанности между различными доменами вашего кода, возможно, с легкой локализацией ошибок.