彼此依赖的Java类

时间:2012-05-28 07:25:50

标签: java oop

我正在学习Play框架。我关注了三个代表仓库库存项目 - 产品数据模型的类:

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);
  }
}

仓库取决于类 StockItem 。类 StockItem 取决于类产品仓库

如何理解这种关系?

3 个答案:

答案 0 :(得分:4)

Warehouse是一个容器类,它有很多项 - StockItem。因此Warehouse了解StockItem,并且每个StockItem都知道它属于Warehouse
类似的东西:

Warehouse warehouse = new Warehouse();
StockItem item1 = new StockItem();
item1.warehouse = warehouse;
warehouse.stock.add(item1);

答案 1 :(得分:1)

Warehouse包含许多StockItems。虽然没有完成检查,但StockItem只能属于一个仓库。 (仓库1 ---很多StockItem)

StockItem是特定产品(它不能同时是两种类型!!!)。 (StockItem many - 1产品:请注意,您可以拥有同一产品的很多StockItem对象)

答案 2 :(得分:1)

  

类库依赖于类StockItem。类StockItem依赖于产品和仓库类。

Warehouse的实施提及StockItem

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

因此依赖在该类上。如果没有StockItem,您将无法编译和使用Warehouse。这就是如何理解这种关系。

同样适用于StockItem vs ProductWarehouse

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

如果没有Product,您将无法编译和使用StockItem