3

私は Play フレームワークを学んでいます。私は、倉庫在庫アイテム製品データ モデルを表す 3 つのクラスについて困惑しています。

public class Product {
  public Long ean; 
  public String name;
  public String description;
  public String toString() {
    return name;
  }
}

public class Warehouse {
  public String name;
  public List<StockItem> stock = new ArrayList<>(); 
  public String toString() {
    return name;
  }
}

public class StockItem {
  public Warehouse warehouse; 
  public Product product; 
  public Long quantity;
  public String toString() {
    return String.format("%d %s", quantity, product);
  }
}

クラスWarehouseはクラスStockItemに依存します。クラスStockItemは、クラスProductおよびWarehouseに依存します。

このような関係をどう理解するか。

4

3 に答える 3

4

Warehouseはコンテナ クラスであり、多くの項目 - がありますStockItem。だからWarehouse知っているStockItemし、誰もがそれStockItemが何Warehouseに属しているかを知っています。
何かのようなもの:

Warehouse warehouse = new Warehouse();
StockItem item1 = new StockItem();
item1.warehouse = warehouse;
warehouse.stock.add(item1);
于 2012-05-28T07:31:35.257 に答える
1

Warehouse には多数の StockItem が含まれています。チェックは行っていませんが、StockItem は 1 つの Warehouse にのみ属することができます。(倉庫1 --- 多くのStockItem)

StockItem は特定の製品です (同時に 2 種類にすることはできません!!!)。(多数の StockItem -- 1 つの製品: 同じ製品の多数の StockItem オブジェクトを持つことができることに注意してください)

于 2012-05-28T07:31:30.680 に答える
1

クラス Warehouse はクラス StockItem に依存します。クラス StockItem は、クラス Product および Warehouse に依存します。

Warehouseメンションの実装StockItem:

public class Warehouse {
    ...
    public List<StockItem> stock = new ArrayList<>();
    ...
}

したがって、それはそのクラスに依存します。あなたがなけれStockItemば、コンパイルして使用することはできませんWarehouse. 関係はそのように理解されるべきです。

StockItemvsProductとについても同様Warehouseです:

public class StockItem {
    ...
    public Warehouse warehouse;
    public Product product; 
    ...
}

あなたがなけれProductば、コンパイルして使用することはできませんStockItem.

于 2012-05-28T07:32:02.833 に答える