【问题标题】:NoSQL DAO implementationNoSQL DAO 实现
【发布时间】:2015-07-14 16:59:46
【问题描述】:

我已经得出结论,使用 DAO 设计最适合我想要实现的目标,但我之前从未尝试过,所以我遇到了一些麻烦。我已经阅读了文档和示例,所以我知道目标是什么,但我很难弄清楚我需要在我的 DAO 接口中包含什么。

例如,我有一个 Model 对象,它具有:

public String name;
public double baseline;
public List<Group> groups;
public List<Indicator> indicators;

但我不知道如何为此创建 DAO 接口?我是否只是将我认为需要的所有方法都放在那里,因为我知道 DAOImpl 类将对 NoSQL 数据库进行实际查询。

这就是它现在的位置:

public interface ModelDAO {

    List<Model> getAllModels();

    List<Model> getModelByName(String Name);

    void updateModel(Model model);

    void deleteModel(Model model);
}

但是,例如,如果我想更新模型的名称,或者从组列表中添加/删除一个组,该怎么办?我会在这个 DAO 课程中处理这些事情吗?或者我会在他们各自的 DAO 类中解决这些问题。

对不起,如果我的理解还没有完全到,我还在努力学习这些东西。

【问题讨论】:

    标签: java oop dao


    【解决方案1】:

    你可以按照你想要的任何一种方式来实现它。重要的是要确保对象对您希望它们成为的样子负责。接口充当 DAO 和其他对象之间的连接器,因此您需要确保其他对象需要做的任何事情都可以使用接口中的方法完成。然而,如果你把每个访问器和修改器都放在接口中,那么使用它就没有意义了,你可以将函数全部公开(换句话说,如果你这样做,你根本就没有使用真正的 DAO。 ) 一般来说,如果您有其他通过接口高度耦合的对象,则不应使用 DAO。如果您决定要坚持使用 DAO 结构,您应该有少量的方法来执行您需要的任何更改。例如,如果您需要更改名为“name”的字段,则不会调用“setName()”,而是修改另一个对象中的 name 字段,然后通过接口(或类似的方法)调用“updateFields()”。 ) 希望对您有所帮助,对于文字墙感到抱歉,这是一个需要回答的复杂问题。

    【讨论】:

    • 嘿,没问题,我很欣赏这个答案。所以简而言之,DAO 接口的方法应该比 Object 类本身少,否则就没用了?
    • 是的,差不多就是这样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2016-10-05
    相关资源
    最近更新 更多