我想在 C++ 中实现数据访问对象模式,但最好不使用多重继承和/或提升(我的客户不喜欢)。
你有什么建议吗?
OTL (otl.sourceforge.net) 是一个优秀的 C++ 数据库库。它是一个单独的包含文件,因此没有与 Boost 相关的所有复杂性(正确或错误!)。
就 DAO 本身而言,您有很多选择。隐藏数据库实现的最简单方法就是使用 C++ 样式接口并在特定实现中实现数据访问层。
类 MyDAO { // 纯虚函数来访问数据本身 } 类 MyDAOImpl :公共 MyDAO { // 从数据库中获取数据的实现 }
对数据访问对象设计模式的快速谷歌搜索将在第一页上返回至少 10 个有用的结果。其中最常见的是 Jeff Foster 已经展示的抽象界面设计。您可能希望添加的唯一内容是创建对象的数据访问对象工厂。
我能找到的大部分代码都不错的例子都是用 Java 编写的,这是 Java 中的一种常见设计模式,但它们仍然与 C++ 非常相关,你可以很容易地使用它们。
这是一个很好的链接,它很好地描述了抽象工厂。
我首选的数据访问抽象是存储库模式。