【问题标题】:data access object pattern implementation数据访问对象模式实现
【发布时间】:2010-09-12 02:41:42
【问题描述】:

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

你有什么建议吗?

【问题讨论】:

    标签: c++ design-patterns oop


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      我能找到的大部分代码都不错的示例都是用 Java 编写的,这是 Java 中的一种常见设计模式,但它们仍然与 C++ 非常相关,您可以很容易地使用它们。

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

      【讨论】:

        【解决方案3】:

        OTL (otl.sourceforge.net) 是一个优秀的 C++ 数据库库。它是一个单独的包含文件,因此没有与 Boost 相关的所有复杂性(无论对错!)。

        就 DAO 本身而言,您有很多选择。隐藏数据库实现的最简单的方法就是使用 C++ 风格的接口,并在特定的实现中实现数据访问层。

        类 MyDAO { // 纯虚函数来访问数据本身 } 类 MyDAOImpl :公共 MyDAO { // 从数据库中获取数据的实现 }

        【讨论】:

        • 我可以看到它如何为数据访问操作提供抽象接口,但我想知道域对象如何与 MyDAO 对象关联以进行实例化和持久化。
        • 答案是对象关系阻抗不匹配。给自己倒杯烈性酒,然后谷歌一下。
        猜你喜欢
        • 2013-03-25
        • 1970-01-01
        • 2011-04-05
        • 1970-01-01
        • 2015-06-25
        • 2012-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多