将DAO传递给静态util函数可以吗?

问题描述 投票:0回答:1

我有一个 Dao 类,它实现了一些列表函数,如下所示:

class MyDaoImpl implements MyDao{
    public List<Item> listItems() {...}
    public Item getSpecificItem() {...}
}

我想编写一个util函数来列出和处理项目,如下所示:

class MyUtil{
   public static List<ProcessedItem> processItems(MyDao myDao) {
       List<Item> items = myDao.listItems();
       Item specificItem = myDao.getSpecificItem();
       List<ProcessedItem> processedItems = new ArrayList<>();
       for (Item item : items) {
           if (item.id != specificItem.id) {
               processedItems.add(...);
           }
       }
       return processedItems;
   }
}

然后在我的其他课程中,我可以调用 util 函数,例如,

class ClassA{
    private MyDao myDao;
    
    public void foo(){
        List<ProcessedItem> processedItems = MyUtil.processItems(myDao);
        ...
    }
}

class ClassB{
    private MyDao myDao;
    
    public void bar(){
        List<ProcessedItem> processedItems = MyUtil.processItems(myDao);
        ...
    }
}

我想知道将 Dao 传递给静态函数是否可以。我之所以这么问,是因为我以前从未见过其他人这么做过。对于哪些参数可以传递给静态函数,是否有一些最佳实践?

java dao
1个回答
0
投票

如果您将其用作实用功能,那几乎没问题。但最好通过 DI(依赖注入)使用它,并确保牢记线程安全

© www.soinside.com 2019 - 2024. All rights reserved.