在不创建类的新实例的情况下调用其他类中的函数

时间:2013-06-11 15:19:21

标签: java class oop

我有以下类:Main创建一个Game实例,创建一个Player实例和一个World实例,World创建一个Floor实例。

现在我想在Player中调用一个方法,这个方法基本上只是一个吸气剂,但可能会在以后产生更多的复杂性。最好的方法是什么?在Game中创建一个方法,调用Floor然后写入播放器?我觉得在播放器中创建一个新的Floor实例并不明智。 (但实际上并不知道。)我认为没有办法直接升级我的等级来从玩家调用game.world.floor?

2 个答案:

答案 0 :(得分:3)

玩家了解世界。

世界了解楼层。

要允许玩家访问楼层,请执行以下操作:

实施这个:

class World
{
    private Floor floor;

    public Floor getFloor()
    {
        return floor;
    }
}

答案 1 :(得分:0)

您可以像这样使用制作地板单身人士

public class Floor{
    private static Floor instance;
    private Floor(){
        // do initial things
    }
    public static Floor getInstance(){
        if(instance == null)
            instance = new Floor();
        return instance;
    }
}

现在,您可以通过调用

从任何位置访问Floor实例
Floor.getInstance()

无论你在哪里打电话,它总是会使用一个Floor实例