首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Effective Java所思1

2012-10-26 
Effective Java所思一第一章 创建和销毁对象观点一:考虑静态工厂方法代替构造函数:好处1:能完整的表述语义

Effective Java所思一
第一章 创建和销毁对象
观点一:考虑静态工厂方法代替构造函数:
好处1:能完整的表述语义,可读性,可操作性方面的改进;
好处2:每次调用时,不一定要创建新的对象,改进性能;
           运用了singleton单态模式;
           ==和equals的使用,前者的性能由于后者,单态的实现使得equals用==替代成为了可能;
好处3:可返回原有类型的子类对象。
           实现了面向对象的思想,封装细节。对外提供的只是接口,具体实现实现了封装。

经典案例:properties文件存储key=string格式的结构,管理类负责解析,初始化,静态工厂方法负责映射生成对象。
缺点1:类如果不含共有的或者受保护的构造函数,就不能被子类化;
缺点2:本身不是标准的一部分,需要配合文档使用,对文档描述要求较高。

观点2:使用私有构造函数强化singleton属性:

观点3:通过私有构造函数强化不可实例化的能力:
           通常工具类采用这种技术。只是希望调用静态的方法和静态的域,不希望被实例化。
           思考:能子类化吗?

观点4:避免创建重复的对象:
           对象的创建和销毁是有代价的,对于可以重复使用,尤其是不变的(immutable)对象而言,需要被重用,而不是频繁的创建和销毁。
            反例:String s = new String(“哈哈”);
            应改为:String s = “哈哈”;
tips:对象的创建和销毁是有代价的,但这种代价大多指的是哪些复杂的对象;小的对象,这种代价是很小的。把握那个传说中的度。

观点5:消除过期的对象引用:
           便于垃圾回收,消除内存泄漏的隐患。
           注意:对于过期应用(obsolete reference),尤其需要消除。

观点6:避免使用终结函数:
           finalizer

热点排行