如何将 Class 与其他 Class 的多个行为相关联?

How to associate a Class with more than one behavior with other Class?

我有一些对象在与游戏关联时同时需要两种类型的行为 Class。最好的方法是如何做到这一点?我在这里没有看到任何 GoF 模式可以提供帮助,但也许我的大脑超载了。

interface Actor {}

class Man implements Actor {}

class Woman implements Actor {}

class Game {
    private Map<Actor> actors;
}

如何将 Player、Referee 或 LineJudge 行为包含到此代码中?

示例:

游戏 1,演员 1 女士和裁判,演员 2 女士和球员

游戏 2,演员 1 女人和玩家,演员 2 男人和玩家

游戏 3,演员 1 男人和球员,演员 2 男人和裁判,演员 3 女人和裁判

...

有几种可能的解决方案。我会给出我认为最有可能符合您要求的选项,但还有更多可能的解决方案。最适合您的情况取决于您需要实现的确切功能。

Game中一个集合,Actor中两个属性

您可以定义一个具有两个属性的 class Actor,一个是 Person 类型,可以是 Man 或 Woman,另一个是 Participant 类型,可以是 Player、Referee 或 LineJudge。

游戏中的三个合集

您可以在 class 游戏中定义三个 Actor 集合,而不是一个,一个对应一个 actor 在游戏中扮演的每个角色。好吧,如果只有一个Referee,那就不是真正的合集了。