реализация шаблона объекта доступа к данным - PullRequest
3 голосов
/ 22 сентября 2008

Я хотел бы реализовать шаблон объекта доступа к данным в C ++, но желательно без использования множественного наследования и / или повышения (что не нравится моему клиенту).

У вас есть предложения?

Ответы [ 3 ]

5 голосов
/ 22 сентября 2008

OTL (otl.sourceforge.net) - отличная библиотека баз данных C ++. Это единственный включаемый файл, поэтому он не имеет всей сложности (правильной или неправильной!) С Boost.

С точки зрения самого DAO у вас есть много вариантов. Самое простое, что скрывает реализацию базы данных, это просто использование интерфейсов в стиле C ++ и реализация уровня доступа к данным в конкретной реализации.

class MyDAO {
  // Pure virtual functions to access the data itself
}

class MyDAOImpl : public MyDAO {
  // Implementations to get the data from the database
}
3 голосов
/ 23 сентября 2008

Быстрый поиск в Google по шаблонам проектирования объектов доступа к данным вернет не менее 10 результатов на первой странице, которые будут полезны. Наиболее распространенным из них является абстрактный дизайн интерфейса, как уже показывал Джефф Фостер. Единственное, что вы можете добавить к этому - это фабрика объектов доступа к данным для создания ваших объектов.

Большинство примеров, которые я мог найти с приличным кодом, относятся к Java, это общий шаблон проектирования в Java, но они все еще очень актуальны для C ++, и вы можете использовать их довольно легко.

Это хорошая ссылка , она хорошо описывает абстрактную фабрику.

1 голос
/ 26 сентября 2008

Моя предпочтительная абстракция доступа к данным - это Шаблон репозитория .

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