如何在Java中建模多个继承对象

the*_*lle 3 java inheritance design-patterns

我正在写一个小小的足球经理游戏,我遇到了以下问题.我有班级人员,球员,教练,经理.Person是其他人的基类.问题是玩家也可以是教练和/或经理.通过添加更多角色(例如地面管理员),我会变得越来越复杂 - 所以,你如何有效地实现这一点?那不是一个模式吗?

Nic*_*ton 9

不要将角色建模为一种人.该人应该拥有一系列角色

public enum Role {
  PLAYER,
  COACH,
  REF 
}

public class Player {
  private final String name;
  private Collection<Role> roles = new ArrayList<Role>();

  public Player(String name) {
    this.name = name;
  }

  public void addRole(Role role) {
    this.roles.add(role);
  }
 }
Run Code Online (Sandbox Code Playgroud)