如何将一个类与一个以上的行为与另一个类相关联?

时间:2019-05-27 06:24:34

标签: oop design-patterns uml class-diagram

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

interface Actor {}

class Man implements Actor {}

class Woman implements Actor {}

class Game {
    private Map<Actor> actors;
}

如何将玩家,裁判或线路裁判的行为纳入此代码?

示例:

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

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

游戏3,演员1的男人和玩家,演员2的男人和裁判,演员3的女人和LineJudge

...

1 个答案:

答案 0 :(得分:0)

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

游戏中有一个集合,演员中有两个属性

您可以使用两个属性定义一个Actor类,一个是Person类型,可以是男人或女人,另一个是Participant类型,可以是Player,裁判或LineJudge。

classdiag1

游戏中的三个集合

您可以在Game类中定义三个Actor集合,而不是一个,每个Actor在游戏中扮演的角色。好吧,如果只有一名裁判,那真的不是一个收藏。

classdiag2