静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同。

Posted tabctrlshift

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同。相关的知识,希望对你有一定的参考价值。

静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同。 声明的返回类型的任何子类都是允许的。 返回对象的类也可以随每次发布而不同。

EnumSet类(条目 36)没有公共构造方法,只有静态工厂。 在OpenJDK实现中,它们根据底层枚举类型的大小返回两个子类中的一个的实例:如果大多数枚举类型具有64个或更少的元素,静态工厂将返回一个RegularEnumSet实例, 返回一个long类型;如果枚举类型具有六十五个或更多元素,则工厂将返回一个JumboEnumSet实例,返回一个long类型的数组。



/**
* Creates an empty enum set with the specified element type.
*/
public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType) {
Enum<?>[] universe = getUniverse(elementType);
if (universe == null)
throw new ClassCastException(elementType + " not an enum");

if (universe.length <= 64)
return new RegularEnumSet<>(elementType, universe);
else
return new JumboEnumSet<>(elementType, universe);
}














以上是关于静态工厂的第四个优点是返回对象的类可以根据输入参数的不同而不同。的主要内容,如果未能解决你的问题,请参考以下文章

静态工厂方法的介绍

详解:Java 的静态工厂方法

软件设计模式系列——简单工厂模式

简单工厂

全面解读php-工厂模式

工厂模式