【问题标题】:Why is the System class declared as "final" in Java? [duplicate]为什么 System 类在 Java 中被声明为“final”? [复制]
【发布时间】:2015-12-27 21:16:19
【问题描述】:

根据我的理解,一个类被声明为 final 以防止它被扩展/继承。所以我认为在这方面可以有安全性,并且可能会有一些性能提升。

但这背后是否有一个非常具体的设计决策?比如说:实现某种设计模式?我确实绕过了类似的线程here!但答案并不是我真正想要的

【问题讨论】:

  • 仍然链接的问题很好地讨论了这个问题。另见my comment 那里。实际上我看不到可以添加什么,因此我会投票关闭它作为重复。
  • 我不知道为什么答案不符合您的期望,但这是我所知道的与您的问题相关的唯一有效答案。

标签: java class system final


【解决方案1】:

单例模式:

-私有构造函数

-仅静态方法

-这个类的对象不需要超过一个,或者根本不需要一个对象

-不需要扩展这个基础类

【讨论】:

  • 这不是单例模式。 Runtime.getRuntime() 是单例,但 System 是实用程序类。
  • 为了论证,我们称它为 Java System Class Pattern....Singleton 是最接近的 PAttern。类本身由 JVM 实例化/加载以使用静态字段和函数
  • 它不是单例模式,因为在单例模式中,对象不是最终的
  • 什么?类本身是最终的,为什么单例的对象也不应该是最终的?您只需要其中一个,并且在代码运行时不会多次实例化它......
猜你喜欢
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 2012-08-31
  • 2022-08-04
相关资源
最近更新 更多