静态工厂方法对比构造器

在创建对象是,静态工厂的优势有4个:
1.有名字
probablePrime表示可能的素数

BigInteger bigInteger = BigInteger.probablePrime(3, new Random());

同样的功能,使用构造器就差了可读性

BigInteger bigInteger = new BigInteger(3, 100, new Random());

2.不一定要创建新对象

Boolean b = Boolean.valueOf(false);

3.可以返回子类
Collections可以返回各种对象,他们都指向接口。他们具体实现都在Collections内部。这样他们不需要暴露个用户,拥有极高的灵活性。
下面是Collections 里的一个静态工厂和包私有类

public static <K,V> NavigableMap<K,V> checkedNavigableMap(NavigableMap<K, V> m,
                                                        Class<K> keyType,
                                                        Class<V> valueType) {
        return new CheckedNavigableMap<>(m, keyType, valueType);
    }
static class CheckedNavigableMap<K,V> extends CheckedSortedMap<K,V>
        implements NavigableMap<K,V>, Serializable
上一篇:inno安装客户端,写注册表url调用客户端


下一篇:xiyueta.js库的.text()方法使用