使用静态工厂方法替代构造方法

下面是一 些静态工厂方法的常用名称。以下清单并非完整:

from——A 类型转换方法,它接受单个参数并返回此类型的相应实例,例如:Date d = Date.from(instant);of——一个聚合方法,接受多个参数并返回该类型的实例,并把他们合并在一起,例如:Set faceCards =

EnumSet.of(JACK, QUEEN, KING);

valueOf——from to 更为详细的替代 方式,例如:BigInteger prime = BigInteger.valueOf(Integer.MAX_VALUE);

instance getinstance——返回一个由其参数 (如果有的话) 描述的实例,但不能说它具有相同的值,例如:

StackWalker luke = StackWalker.getInstance(options);

create newInstance——instance getInstance 类似,除了该方法保证每个调用返回一个新的实例,例如:

Object newArray = Array.newInstance(classObject, arrayLen);

getType——getInstance 类似,但是如果在工厂方法中不同的类中使用。Type 是工厂方法返回的对象类型,例

如:FileStore fs = Files.getFileStore(path);

newType——newInstance 类似,但是如果在工厂方法中不同的类中使用。Type 是工厂方法返回的对象类型,

例如:BuweredReader br = Files.newBuweredReader(path);

type—— getType newType 简洁的替代方式,例如:List litany = Collections.list(legacyLitany);

总之,静态工厂方法和公共构造方法都有它们的用途,并且了解它们的相对优点是值得的。通常,静态工厂更可

取,因此避免在没有考虑静态工厂的情况下提供公共构造方法。

发布了89 篇原创文章 · 获赞 32 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41345773/article/details/94603659