美好的一天!
我有点困惑.我想使用日历,所以我在互联网上搜索它并遇到以下代码:
Ca1endar c = Calendar.getlnstance(); c.set(2011,2,5,1,25);
但我了解到这是一种静态方法:
Calendar.getlnstance();
我真的很想了解它.所以下次我还可以创建一个可以创建实例的静态方法.
谢谢.
解决方法
这是静态工厂方法.想法是方法是调用构造函数的方法,它返回构造的对象.
Calendar.getInstance()的主体可能是这样的:
Calendar.getInstance()的主体可能是这样的:
return new SomeCalendar(now);
SomeCalender是抽象类Calendar的具体实现.一些优点是:您不必关心底层类(只要您知道它只是一个日历),并且底层实现可以在不影响您的情况下进行更改(例如,可以更改代码以返回新的AnotherCalendar(),您不必更改代码中的任何内容)
由于它是一个静态方法,您可以在类型本身(Calendar.getInstance();)上调用它,而不是该类型的实例(Calendar c = …; c.getInstance();).