正在呼叫Class.getInstance()
相当于new Class()
?
我知道后者调用了构造函数,但是呢getInstance()
?
谢谢。
没有这样的方法Class#getInstance()
。你可能把它与Class#newInstance() http://java.sun.com/javase/6/docs/api/java/lang/Class.html#newInstance%28%29。是的,这与new
on the default构造函数。这是其摘录Javadoc http://java.sun.com/javase/6/docs/api/java/lang/Class.html#newInstance%28%29:
创建由此表示的类的新实例Class
目的。该类的实例化就好像由new
带有空参数列表的表达式。如果该类尚未初始化,则对该类进行初始化。
In code,
Object instance = Object.class.newInstance();
是相同的
Object instance = new Object();
The Class#newInstance()
调用实际上遵循工厂方法 http://en.wikipedia.org/wiki/Factory_method_pattern图案。
Update: 看到其他答案,我发现你的问题有些含糊不清。好吧,有方法的地方actually named getInstance()
经常被用来表示抽象工厂 http://en.wikipedia.org/wiki/Abstract_factory_pattern图案。它将“在幕后”使用new
or Class#newInstance()
创建并返回感兴趣的实例。它只是隐藏您可能不需要了解的具体实现的所有细节。
此外,您还经常在某些(主要是自行开发的)实现中看到此方法名称辛格尔顿 http://en.wikipedia.org/wiki/Singleton_pattern图案。
也可以看看:
- GoF 设计模式的现实示例。 https://stackoverflow.com/questions/1673841/examples-of-gof-design-patterns/2707195#2707195
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)