当前位置: 首页 > 面试题库 >

静态方法还是Singleton,该选择哪一种?[关闭]

麹浩瀚
2023-03-14
问题内容

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。

9年前关闭。

可能重复:
静态类和单例模式之间的区别?

在Java中哪个更好,

实现公共静态方法,例如

Factory.createLoginRequest()

或实施Singleton模式,例如

Factory.getInstance().createLoginRequest()

(两个都将返回一个Requesthtml" target="_blank">对象。)

哪个更好, 为什么


问题答案:

来自维基百科:

请注意,类的简单静态实例和单例实例之间的区别:尽管单例实例可以实现为静态实例,但也可以延迟构造它,直到需要时才需要内存或资源。另一个显着区别是,静态成员类无法实现接口,除非该接口只是标记。因此,如果类必须实现由接口表示的协定,则实际上必须是单例。



 类似资料:
  • 问题内容: 我来自Java背景,是python的新手。我有几个脚本,它们共享一些与读取和写入文件有关的应用程序特有的辅助功能。有些功能与阅读有关,有些与写作有关。在寻找正确的方法时,我看到了这一点:Python中的静态方法? 他在回答中提到: 最后,请谨慎使用staticmethod!在极少数情况下,Python中需要使用静态方法,而我已经看到它们使用了很多次,而使用单独的“顶层”函数会更加清楚。

  • 我来自Java背景,对python不熟悉。我有几个脚本,它们共享与读取和写入文件相关的应用程序独有的一些帮助函数。一些功能与阅读相关,一些与写作相关。在搜索正确的方法时,我看到了这个:Python中的静态方法? 他在回答中提到: 最后,谨慎使用staticmethod!Python中很少需要静态方法,我也见过很多次使用静态方法时,单独的“顶级”函数会更加清晰。 我不太理解顶级函数,我不确定给出这个

  • 我正在使用存储库模式并尝试建立模型之间的关系。当我尝试运行存储()方法(在控制器中),该方法试图使用用户()方法(与方模型建立关系)时,我收到以下错误消息: 非静态方法不应该静态调用::user(),假设$this来自不兼容的上下文 我不明白为什么在尝试运行user()relationship方法时会出现此错误,但所有其他方法(包括$this- 以下是相关代码:

  • 问题内容: 我已阅读以下讨论: 如果私有帮助器方法可以是静态的,则它们应该是静态的;如果它们的类没有成员变量,则所有方法应该是静态的。 似乎人们通常会接受静态方法,但由于以下两个原因,对此有些怀疑: 他们很难测试。 他们违反了OO原则。(一个人说,它们是函数,而不是方法。) 最可接受的静态方法是 私有静态 方法。但是,为什么为什么根本不存在静态方法呢?在什么情况下,它们是最优先采用的方法? 问题答

  • 问题内容: Android示例中的“登录”实现为非静态内部类。但是,根据Commonsguys的观点,此类应该是静态的,并且使用对外部活动的弱引用参见this。 那么正确的实现方式是什么?静态还是非静态? Commonsguy实现 https://github.com/commonsguy/cw- android/tree/master/Rotation/RotationAsync/ 从Googl