为什么java标准库有些类要使用静态方法构造对象?引申问题则是使用静态方法构造对象到底有何好处?

FengGLA 2017-02-26 11:09:41
java标准库中有些类不能使用构造方法构造对象,而是要使用该类的静态方法,比如LocalDate的now方法和of方法。恕我水平不够,看了部分LocalDate的源码也没有看出LocalDate如此设计的用意和好处何在,请问各位大神,使用静态方法构造对象的用意和好处到底有些什么呢?
...全文
181 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
自由自在_Yu 2017-02-27
  • 打赏
  • 举报
回复
1、可以在不进行类变量声明并初始化的情况下,使用某类中的一些变量。 2、使类在声明被载入的同时,位于static中的初始化也同时完成。 3、在一些工厂类中,可以为全局提供一个唯一的对象句柄,而这个句柄在程序执行起来以后,就是构造好的,直接拿来就可以用。——这是静态方法代替构造函数最常见的用法。 缺点也很多。 1、一旦静态方法中的代码在载入中出现了错误,应用程序可能连正常初始化都无法完成。而使用构造函数的话,一般不会发生这个问题。 2、不灵活。构造函数可以在参数上进行控制,使类对象能满足不同的需要,静态函数初始化的方式很难满足这点。 3、使用范围较窄,通常只用在工厂函数中。 4、静态构造方式只在编译时由虚拟机执行一次,程序员不能手动调用,而构造函数可以在任何时候由程序员手动调用。
piterlin 2017-02-27
  • 打赏
  • 举报
回复
应该是工厂模式,查询一下“工厂模式”

51,410

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧