这是更多关于技术的问题。我有一个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面前的东西,就必须搜索所有存在的对象以查看是否存在于这些坐标处。
请告诉我这是否没有道理,我对此还比较陌生,并且我之前从未在这些论坛上发布过。 非常感谢您的任何建议。