gpt4 book ai didi

android - 在对象之间共享实例的最佳实践

转载 作者:行者123 更新时间:2023-11-29 21:19:38 25 4
gpt4 key购买 nike

假设我有一个类 MainActivity

这包含许多存储在字段中的对象,例如 PlayerEnemyLevel 等的实例。这些对象中的每一个需要能够引用所有其他对象。

解决这个问题的最佳方法是什么?

  1. 将这些字段设为静态,并相应地引用它们,即

    MainActivity.player.setHealth(0);
  2. 为每个字段创建 getter 方法,并简单地向每个对象传递一个对 MainActivity 的引用,以便它们可以调用这些 getter 方法,即

    mainActivity.getPlayer().setHealth(0);
  3. 将每个对象传递给每个其他对象的引用,并将这些引用存储在每个对象的字段中,以便可以直接引用它们,即

     player.setHealth(0);

最佳答案

不是真正的答案,只是给你一些提示。

你的播放器应该是这样的:

public class Player
{
private static Player _player = null;
int _health;
...

public static Player getInstance()
{
if (_player == null)
_player = new Player(...);

return _player;
}

public void increaseHealth(int amount)
{
_health += amount;
}
}

然后在您的应用程序的任何部分,当您需要播放器时,您可以:

Player p = Player.getInstance();

您将始终获得同一个播放器。您可以对关卡类做类似的事情,因为任何时候只有 1 个关卡处于 Activity 状态。

但是 Enemy 类需要不同的方法。我会在 Level 类中创建一个 List 并像这样获取它们:

Level l = Level.getInstance();
List<Enemy> enemiesOnLevel = l.getEnemies();
// do something with them

关于android - 在对象之间共享实例的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20901816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com