《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这个关键字在,类方法属于类,所以可以重复利用已经创建好的对象。

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值