1

对于大学作业,我必须为 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) {

...
4

0 回答 0