创建一个类的实例或为每个出现创建一个单独的实例是否更好?

时间:2013-12-11 04:51:31

标签: java performance semantics

通过查看已完成程序的代码,我一直在寻找有关优秀Java编码实践的技巧。我的第一个目标是“我的世界”,因为我尝试过修改它,我开始质疑我的选择。这是来自一个成功的游戏的代码,它给了我两种截然不同的方式。

对于那些不知道的人,Minecraft将其项目实例化一次,然后使用其他来源的信息为方法参数引用该单个实例及其执行所需操作的方法。另一方面,它的实体为世界上每个单独的实体实例化一次,并对自己的信息负责。

因此,问题的症结在于:哪种方法更有效?是否有一个特别的理由支持一个而不是另一个?这是情境化的吗?以某种方式做到这一点会更有效吗?

1 个答案:

答案 0 :(得分:2)

答案是,在大多数情况下,这取决于。

您所描述的是singleton pattern,它是一个且只有一个对象的实例。如果有多个实例要么昂贵(例如DAO的多个实例),或者没有多大意义(例如DAO的多个实例),这是有益的。

如果您拥有同一类的两个独立的不同实例,则需要单个对象实例 - 例如,假设您持有两个钻石镐。我不会想象单身人士会在这种情况下有意义,因为你可以单独与每个镐交互。

使用最适合情况的模式。有(并且永远不会成为)解决这类问题的任何一刀切的方法。