当前位置: 首页 > 知识库问答 >
问题:

是否应该在Java中的每个类中创建一个主类的引用?

龙俊德
2023-03-14

我有一个大程序,我几乎在每个类中都使用我的主类。我通常通过getInstance方法访问,但是每次我需要的时候我都会这样做。例如:

OITCPlugin.getInstance().get....

现在我想知道这是否非常有效,如果我为它声明一个变量并访问该变量是否更好:

private OITCPlugin plugin = OITCPlugin.getInstance();
...
plugin.get...

如果我只在一种方法中需要它,如果我只在方法本身中声明它,它会更有效和更节省内存吗?提前谢谢!

共有1个答案

蒲昊
2023-03-14

如果只需要对象的一个实例,那么单例模式是一种常见的方法。很多人认为这是一种反模式,但它仍然非常流行。Spring beans是单例的,redux商店是单例的!

如果您只在一个方法中使用它,那么不妨释放堆并将其存储在方法中的本地位置,如下所述。从技术上讲,释放堆将提供更好的性能,但Java并不是一种超级高效的语言,它还可以为您管理内存。不过,内存通常不是问题,因为它非常便宜,而且我们有很多内存(也许我应该更加小心我的内存管理!)

 类似资料:
  • 问题内容: 我们为企业托管了许多网站,每个企业都有许多可能希望通过ES进行索引和搜索的文档类型。 通常,每个企业拥有的文档类型数量少于20,每种类型的文档数量可能少于10万(通常少得多)。 我不确定如何设置这些网站的数据?我应该将它们放在单独的索引中,还是应该将它们全部塞入具有不同文档类型的同一索引中?还是还有其他东西? 也许,我什至应该更深入地索引中小型网站?如果计划扩展到5万个站点,应该准备哪

  • 问题内容: 您是否应该在JPA中每个表有一个存储库?如果不是,您如何解决存储库数据库中的泛型? 例如,下面是一个。它处理对对象的 CRUD 操作。如果我想让存储库也保存一个对象,我将如何更改下面的界面以容纳两个对象? 问题答案: 由于存储库是从域驱动设计派生的概念,因此考虑数据库表是错误的方法。根据定义,您可以从存储库访问聚合根。实际上,存储库正在模拟这些集合。 现在是什么形成聚合根?可能更有趣:

  • 我正在进行一些考试修改工作,创建了一个Employee抽象类和两个扩展到Employee类的其他类(AcademyicEmployee和ProfessionalEmployee)。 我在Employee类中设置了一个公共静态void main来运行这些行: 我知道您不能实例化一个抽象类,并且创建的实际对象是“new”关键字之后的任何内容,但为什么允许我这样做: 我想它的工作方式是“数据类型”然后“

  • 问题内容: 我正在尝试开发在线酒店预订系统。我有一个主类,它从用户那里获取输入信息,例如他们的姓名,他们的付款信息和其他数据字段,并使用该信息作为对象。我有另一个名为的类,其中包含每个对象的列表。我遇到的问题是我无法找出一种将对象添加到对象列表中的方法。这是一些代码: 我不知道如何获取新对象作为类中方法的参数传递。我只是束手无策,希望有人能帮助我慢跑。 谢谢你的帮助。 问题答案: 让makeRes

  • 编写一个封装圆概念的类,假设圆具有以下属性:一个点表示圆的中心,圆的半径为整数。包括构造函数、访问器和赋值器以及toString和equals方法。还包括返回圆的周长(2*PI*半径)和面积(PI*半径^2)的方法。 我可以走到这一步,我只是对向我的类添加点构造函数、访问器和变异器有点困惑。 看起来像这样吗? 是否可以将两者结合在一个类中?我试过了,它的每一行都有一个错误,说圆圈没有返回类型。任何

  • 问题内容: 我正在玩Java的反射API,并尝试处理一些字段。现在,我要确定字段的类型。字符串很简单,只需执行即可。其他非派生类也是如此。但是,如何检查派生类?例如作为的子类。我无法找到任何或方法。我是否需要遍历所有人并自己找到超人? 问题答案: 您需要此方法: 一般情况下,(以上)应替换为并应替换为 从JavaDoc: 确定此对象表示的类或接口是否与指定参数表示的类或接口相同或超类或超接口。如果