需要帮助在Java中实现简单的Bid Tracker

时间:2013-11-10 23:42:36

标签: java multithreading

对于大学作业,我必须为Bid Tracker实现一个界面。出价跟踪器的一些简单功能是:

  • 记录用户对商品的出价
  • 获取商品的所有出价
  • 获取用户出价的所有项目

这不应该有GUI或DB持久性。

我已经创建了一个类和接口,如下所示,我的解决方案基于两个保存数据的哈希表。我的问题是,有没有比使用两个哈希表更好的设计?这个设计还可以吗?

BidTrackerImpl

 public class BidTrackerImpl implements BidTracker {

ItemDAO itemDAO = new ItemDAOImpl();


public void addBid(Bid bid, int itemId) throws ... {
    Item item = itemDAO.getItemById(itemId);
    item.addBid(bid);
}

public List<Bid> getAllBids(int itemId) {
    ...
}


public Set<Item> getAllItems(int userId) {
...
}

DAO使用两个哈希表来存储数据,因此我可以通过任一键访问(我使用锁来确保DAO方法中的线程安全)。

public class ItemDAOImpl implements ItemDAO {

Hashtable<Integer, Item> itemsByItemId = new Hashtable<>();
Hashtable<Integer, Set<Item>> itemsByUserId = new Hashtable<>();
...

@Override
public Item getItemById(int itemId) {

...

0 个答案:

没有答案