1

大学の課題のために、Bid Tracker のインターフェースを実装する必要があります。入札トラッカーの簡単な機能は次のとおりです。

  • アイテムに対するユーザーの入札を記録する
  • アイテムのすべての入札を取得する
  • ユーザーが入札したすべてのアイテムを取得する

これには、GUI または DB の永続性があってはなりません。

以下のようにクラスとインターフェースを作成しました。私のソリューションは、データを保持する 2 つのハッシュテーブルに基づいています。私の質問は、2 つのハッシュ テーブルを使用するよりも優れた設計はありますか? また、このデザインは大丈夫ですか?

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 は 2 つのハッシュ テーブルを使用してデータを格納するため、どちらのキーでもアクセスできます (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