Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        5年前关闭。
                    
                
        

我在编写本文时就有一个程序,该程序旨在模拟发现食物的错误。简而言之,我有一个网格(一个世界),里面有各种能量值不同的虫子,障碍物和食物。每个虫子都会朝各个方向看,在“可见距离”内获得最接近的食物,然后朝其移动一个单元格,否则朝随机方向移动。

我有3种情况:


ug
一个世界
主要


ABug和AWorld显然包含所有用食物和障碍物填充网格,感知食物,移动虫子等的方法,而Main类是创建世界的控制器,它根据用户输入创建许多虫子并将其添加到世界。

我的问题是:

除了将世界的引用传递给需要在bug内的每个函数之外,还有更好的方法让bug知道它所在的世界,而一个世界也知道其中的bug吗?

我目前在world类中有一个bug列表,然后将2D数组传递给bug类中需要它的函数。

很抱歉,冗长的解释,不确定人们想要多少细节,所以我把这一切都放了:)

谢谢你的建议

最佳答案

我会在Bug构造函数或setter方法中将对World实例的引用传递给每个Bug对象。这样,每个错误实例都知道它是各自的世界实例,并可以向其询问某些事情(例如,要求食物……)。

我不会将World设为Singleton(定义参见:http://en.wikipedia.org/wiki/Singleton_pattern)。因为没有必要,也没有使用来将自己限制为World的一个实例。如果使用不当,则可能会限制Singleton模式的设计可测试性,引入微妙的线程(和类加载)问题,...

关于java - Java-如何使1类和2类彼此了解? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26739357/

10-08 23:29