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

本文探讨了静态工厂方法在创建对象时的优势,列举了常见的静态工厂方法名称及其应用场景,如from、of、valueOf等,并对比了静态工厂方法与公共构造方法的相对优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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);

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值