请问Java的构造器和静态工厂方法有什么区别?另外如何使用静态工厂方法去创建对象?
我正在自学Java,对于Java的构造器和静态工厂方法不是特别理解,平常用new创建对象习惯了,也不是特别明白怎么使用静态工厂方法,希望有人可以指导一下,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我正在自学Java,对于Java的构造器和静态工厂方法不是特别理解,平常用new创建对象习惯了,也不是特别明白怎么使用静态工厂方法,希望有人可以指导一下,
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
静态工厂方法,本质上就是用静态方法返回类的一个实例。通过把构造方法封装起来,只有类内才能进行调用,而类外部不能知道相关构造方法的细节,只能通过静态方法进行调用。直观来讲就是把
A a = new A()
转变为A a = A.createA()
。优点有以下几点:比起构造方法来说,静态方法由于有名字更为直观;当创建对象比较复杂的时候,使用可以通过传入不同的参数来完成对不同对象的创建,也包括该类的子类实例,而这些信息对于调用者来说是隐藏的,这个特性在Java源码中被经常用到;当对象的创建比较复杂的时候,比如一些连接的创建,可以把这些初始化工作交给静态工厂方法。
常见的几个静态工厂方法有:
String.valueOf()
,Optional.of()
,单例模式中获得当前单例的方法。下面是一个简单的例子。