数据访问对象模式实现

时间:2008-09-22 18:33:04

标签: c++ design-patterns oop

我想在C ++中实现数据访问对象模式,但最好不要使用多继承和/或boost(我的客户端不喜欢)。

你有什么建议吗?

3 个答案:

答案 0 :(得分:5)

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
}

答案 1 :(得分:3)

对数据访问对象设计模式的快速谷歌搜索将在第一页上返回至少10个有用的结果。其中最常见的是Jeff Foster已经展示的抽象界面设计。您可能希望添加的唯一内容是用于创建对象的数据访问对象工厂。

我用大量代码找到的大多数例子都是用Java编写的,它是Java中常见的设计模式,但它们仍然与C ++非常相关,你可以很容易地使用它们。

This is a good link,它很好地描述了抽象工厂。

答案 2 :(得分:1)

我首选的数据访问抽象是Repository Pattern