如何在两个不同的类对象中链接数据而又不存储两次数据

时间:2018-12-30 22:18:29

标签: java class

这是更多关于技术的问题。我有一个Environment类,即位置块的2D数组。

Class Environment{
EnvBlock[][] envBlockGrid; 
...}

在这些块中可以有任意数量的对象。

class EnvBlock {
public ArrayList<EnvObj> envObjs; 

弗雷德说,这些物体之一可能是一个人。

class Person extends EnvObj{
//does not contain info on location in environment

主要:

Person fred = new Person;
Environment env = new Environment;
env.envBlockGrid[3][5].envObjs.add(fred);

环境对象将在2D数组中存储对Fred对象的引用。但是我还希望Fred对象具有位置信息,例如,他可能想看看他前面的街区。

为此,我正在搜索环境2D数组以查找Fred的位置,然后查看他前面的块,这似乎效率不高。

但是,如果我将Fred的2D坐标位置保存在Fred对象中,则这将复制此位置信息,这似乎也不正确,并且可能导致编程错误,例如,当Fred时,存储在Fred中的坐标可能会更新可以移动,但是环境对象中的其他对象则没有。

仅将位置存储在person对象中也不理想,因为那样的话,如果我想查看Fred面前的东西,就必须搜索所有存在的对象以查看是否存在于这些坐标处。

请告诉我这是否没有道理,我对此还比较陌生,并且我之前从未在这些论坛上发布过。 非常感谢您的任何建议。

0 个答案:

没有答案