处理多个Java对象的最佳方法
关于Java中处理多个对象的最佳方法,我还没有找到一个很好的答案。我在StackOverflow上看到了几个问题,但我对他们的答案不满意 假设我有一个处理多个Java对象的最佳方法,java,oop,object,Java,Oop,Object,关于Java中处理多个对象的最佳方法,我还没有找到一个很好的答案。我在StackOverflow上看到了几个问题,但我对他们的答案不满意 假设我有一个播放器类: public class Player { private String nickname; private long maxHealth; private long health; public Player(String nickname, long maxHealth, long health)
播放器
类:
public class Player
{
private String nickname;
private long maxHealth;
private long health;
public Player(String nickname, long maxHealth, long health)
{
this.nickname = nickname;
this.maxHealth = maxHealth;
this.health = health;
}
public String getNickname()
{
return nickname;
}
public void setNickname(String nickname)
{
this.nickname = nickname;
}
public long getMaxHealth()
{
return maxHealth;
}
public void setMaxHealth(long maxHealth)
{
this.maxHealth = maxHealth;
}
public long getHealth()
{
return health;
}
public void setHealth(long health)
{
this.health = health;
}
}
假设我有一个游戏,一个游戏中有多个玩家,这取决于在线用户的数量。这将是必要的存储在某个地方的所有球员,我们希望像健康的信息被保存和检索以后,改变和保存。根据我目前的知识,我将创建这样的东西来完成这项工作:
public class PlayerManager
{
private static final PlayerManager SINGLETON = new PlayerManager();
private final Set<Player> players;
private PlayerManager() {
this.players = new HashSet<>();
}
public static PlayerManager getSingleton()
{
return SINGLETON;
}
public void addPlayer(Player p)
{
players.add(p);
}
public void removePlayer(Player p)
{
players.remove(p);
}
public boolean exists(String nickname)
{
return players.stream().filter(p -> p.getNickname().equalsIgnoreCase(nickname)).count() == 1;
}
... getPlayer(String nickname), ...
}
公共类PlayerManager
{
private static final playermanger SINGLETON=new playermanger();
私人决赛选手;
私人玩家管理员(){
this.players=new HashSet();
}
公共静态PlayerManager getSingleton()
{
返回单身;
}
公共无效添加玩家(玩家p)
{
玩家。添加(p);
}
公共无效移除玩家(玩家p)
{
玩家。移除(p);
}
存在公共布尔值(字符串昵称)
{
return players.stream().filter(p->p.get昵称().equalsIgnoreCase(昵称)).count()=1;
}
…getPlayer(字符串昵称)。。。
}
我的整个项目将能够使用
PlayerManager
singleton来添加、删除和检索播放器。这是可行的,但我觉得这不是最好的方法。存储和检索对象的最佳方式是什么 我投票结束这个问题,因为它是关于工作代码的,应该问一下这是一个很好的方法,但是你应该使用一个,我理解如果我有多个线程访问对象的话,使用它的必要性。但是你真的认为我的方法是一个很好的练习吗?如果你有一个游戏类,为什么不把玩家放在那里呢?这难道不是迈向上帝类的一步吗?