Мне нужно спроектировать слой доступа к данным. Библиотека приложения DAL .Net Enterprise версии 3.5. Блок доступа к данным (DAAB).
В моем приложении есть различные логические модули, такие как регистрация, выставление счетов, управление заказами, управление пользователями и т. Д.
Я использую бизнес-объекты C # для сопоставления объектов модуля с таблицами базы данных, а затем возвращаю коллекцию List клиенту.
Я хотел бы спроектировать свой DAL таким образом, чтобы, если завтра мы решим использовать какую-то другую среду доступа к данным, у нас будет минимальное изменение кода.
Учитывая это, как мне спроектировать структуру моего класса?
Я думал, что у меня будет класс DbManagerBase, который будет оберткой над существующим .net DAAB
Этот класс DbManagerBase будет реализовывать интерфейс с именем IDbManagerBase, который будет иметь открытые методы, такие как ExecuteReader, ExecuteNonQuery и т. Д.
Клиентский класс т.е. RegistrationDAL, UserManagermentDAL будет иметь следующий код внутри каждого из своих методов:
IDbManagerBase obj = new DbManagerBase ()
obj.ExecuteReader (myStoredProcName)
,
,
,
Это хороший OOPS дизайн? Могу ли я узнать какой-нибудь лучший подход, пожалуйста? Или мне нужно использовать наследование здесь?
Могу ли я иметь все методы в классе DbManagerBase и классах RegistrationDAL, UserManagermentDAL как статические? Я думаю, если у меня есть методы как статические, то приведенный выше интерфейсный код не будет иметь никакого смысла ... правильно ???