《effective java》读书笔记——(一)

《effective java》这本书,买了有半年之久了,我也大概翻阅了一遍,说实话,没看懂,觉得这本书简直烂透了,看得我云里雾里的。后来,这本书被我束之高阁了,偶然在一篇博客上看到,至少要把《effective java》这本书看三遍,有必要的话,把里面的知识点全背下来。诧异之余,我决定重新拾起这本书,重新来解读这本书。

第一条是考虑使用静态工厂方法代替构造函数。构造函数,一般用来实例化一个类,创建一个对象;静态工厂方法同样可以实现相同的效果,而且相比较构造器有三大优势

第一,    静态工厂方法,有名称;

public class BigInteger {

    private int number;

public BigInteger(intnumber) {}

}

例如,通过构造器BigInteger bigInteger = new BigInteger(number),创建了一个带整型形参的BigInteger的对象,如果,认为该对象返回是素数,没有名称,并不能从该构造器看出创建出来是素数的BigIngeger。通过静态工厂方法,

public class BigInteger {

private int number;

private String str;

public static BigIntegerprime(int number) {}

}

通过BigInteger.prime(number),很显然的看出返回对象的特性,可读性强。

第二,不必每次调用静态工厂方法的时候都创建一个新的对象。这个很好理解,因为有static这个关键字在,类方法属于类,所以可以重复利用已经创建好的对象。

第三,返回原返回类型的任何子类型的对象,灵活性强。这句话读起来很拗口。只要返回的对象是原类型的子类,该对象可以是非共有的。静态工厂返回的对象所属的类,在编写包含该静态工厂方法的类是可以是不必存在的。

 

你可能感兴趣的:(java)