Java 检索两组数据的Dao

Java 检索两组数据的Dao,java,dao,Java,Dao,假设我们有一个处理车辆数据库表中车辆的应用程序 所有处理逻辑都是相同的,可用于处理轿车和卡车 有一个关键点,应用程序将请求DAO车辆,这取决于它可能需要轿车或卡车(而不是两者)的过程 处理这个问题的好方法是什么 记住以下几点: 向DAO方法发送一个参数,说明我们需要哪种类型的数据 将DAO设置为“模式”,以关注特定的数据集 对于每组数据有两个DAO实现。可能有一个抽象DAO和两个实现。服务/控制器可以使用必要的DAO 有人能推荐一个解决方案或评论,并推荐上述任何一种吗 谢谢,因为dao可以在多线

假设我们有一个处理车辆数据库表中车辆的应用程序

所有处理逻辑都是相同的,可用于处理轿车和卡车

有一个关键点,应用程序将请求DAO车辆,这取决于它可能需要轿车或卡车(而不是两者)的过程

处理这个问题的好方法是什么

记住以下几点:

  • 向DAO方法发送一个参数,说明我们需要哪种类型的数据
  • 将DAO设置为“模式”,以关注特定的数据集
  • 对于每组数据有两个DAO实现。可能有一个抽象DAO和两个实现。服务/控制器可以使用必要的DAO
  • 有人能推荐一个解决方案或评论,并推荐上述任何一种吗


    谢谢

    ,因为dao可以在多线程环境中由不同的调用使用。不要使用“模式”。这可能会导致无效调用。考虑以下步骤:

    Thread 1 set dao mode to truck
    Thread 2 set dao mode to sedan
    Thread 1 read data. It reads sedans instead of trucks
    
    带有一个附加参数(类型)的解决方案很好,提取卡车(或轿车)可以是请求的一部分

    请注意,如果将来可能有其他车辆,则此解决方案不是最佳解决方案。它打破了开闭原则。 以下是OCP的简要说明:

    软件实体…应为扩展打开,但为扩展关闭 修改


    因此,解决这种情况的最佳方法是有一个dao接口和两个不同的dao实现,一个用于轿车,一个用于卡车。如果将来将存在一个额外的工具,则不需要对现有代码进行修改,但只需要编写一个实现dao接口的新类。这保证了开闭原则。

    谢谢您的解释。开闭原理非常重要。