【发布时间】:2017-09-09 05:42:56
【问题描述】:
【问题讨论】:
-
没有。它不是,它也没有声称。
-
我认为是静态工厂方法。此链接可能会有所帮助:stackoverflow.com/a/3169644/8093676.
标签: java design-patterns
【问题讨论】:
标签: java design-patterns
来源与您的观察并不矛盾:
public static final KeyGenerator getInstance(String algorithm)
throws NoSuchAlgorithmException {
if (algorithm == null) {
throw new NullPointerException("algorithm == null");
}
Engine.SpiAndProvider sap = ENGINE.getInstance(algorithm, null);
return new KeyGenerator((KeyGeneratorSpi) sap.spi, sap.provider, algorithm);
}
ENGINE#getInstance 返回的 SpiAndProvider 可能是单例。如果您进一步研究实现,那么每次调用 getInstance 时都会有一个新实例,这并不奇怪,因为 KeyGenerator 具有实例成员,由您通过调用传递的参数启动。
【讨论】: