java 我如何对一个类建模,这个类具有另一个类的示例的特定示例计数?

p8h8hvxi  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(139)

如果我有两个不同的类(比如,个人类和商品类),我如何表示每个人对每种商品的个人需求(一个数字)?
如果我初始化person类的10个示例,然后5个不同类型的good:每个人对每种商品都有自己的个人需求,但如果我只将good类初始化为一个单独的类(因此在本例中我们将有good类的5个示例),我如何为每个人的示例提供他们对5个good示例中的每一个的特定需求?
我真的不知道如何用更清楚的语言问这个问题,希望我足够具体,你知道我想问什么。请回答,如果你有问题!

yvfmudvl

yvfmudvl1#

我可以想出几种简单的方法来实现它;哪一个更合适可能取决于您需要如何使用Person的商品需求。
第一个想法是让每个Person包含一个CommodityMap来计数,以表明这个人需要哪些商品,以及每种商品需要多少。

import lombok.AllArgsConstructor;
import lombok.EqualsAndHashCode;
import lombok.Getter;

@EqualsAndHashCode
@AllArgsConstructor
public class Commodity {

    @Getter
    private UUID id;

    @Getter
    private String name;
}
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

public class Person {

    private Map<Commodity, Integer> demands = new HashMap<>();

    public void setDemand(Commodity commodity, Integer count) {
        demands.put(commodity, count);
    }

    public Optional<Integer> getDemand(Commodity commodity) {
        return Optional.ofNullable(demands.get(commodity));
    }
}

另一种选择可能更有意义,例如,如果你需要在模型中将Demand作为一个独立类来跟踪,那么Person可以有一组Demand,每个Demand引用一个Commodity * 和 * 一个计数。
一个二个一个一个

相关问题