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