鉴于本人才疏学浅,所以此文章仅仅基于自己对于文章的基础理解于简单应用理解。欢迎大家批评。
在创建与销毁对象中,1-4条主要讲解在创建对象对于性能来讲,尽量减少构造器的使用,尽量使用静态工厂类方法。并宣扬了静态工厂的优势。
来说一下优势:
一、静态工厂方法 有名称:很简单有名称无论在调用还是修改期间都是极好极好的,可能因为自己本身参与二次开发比较多对于方法命名相似度很高的方法很反感也很烦恼,构造器方法同名不同参会更让人烦躁。而采用静态工厂方法就可以让调用人很清楚明白调用的方法,亦便于代码维护。
二、不必每次创建一个新的对象:简单来说就是我可以复用一些实例对象,不必每次都需要new一个出来。这样可以保证在哪个阶段实例出来的对象是新的哪个对象是复用过来的,这样的类在书中称为实例受控的类。这样的类完全可以用==取代equals 来提升性能。性能的提升就是在每一点一滴的积累中提升。
三、静态工厂方法可以返回原返回类型的任何子对象:不多解释可以类比一下接口。优势还存在可以根据程序员控制来改变方法的权限,简单来说可以通过逻辑对代码的公有之类进行改变。
四、在创建参数实例代码简洁易懂:如果在一个类中创建多个构造器且参数数量相同但类型不同时,使用静态工厂类就显得更加简洁。这样也便于便用与维护
说一下缺点:如果静态工厂方法为私有构造器,那么不能实现子类化,因为鼓励程序复合而不是继承
静态工厂方法实际上就静态方法。这样对于查询如何实现实例化是困难的。现在的ide会有支持查询如何实现实例化。
所以在进行实例对象的时候不仅考虑公有构造器,也要考虑静态工厂实现。
最后说一下私有构造器,私有构造器可以保证唯一性,在不想实例的类中也可以让子类可调用超类的构造器。
书中第五条说的是避免创建不必要的对象,实际上说的是减少内存开销,在能复用的情况下尽量不要创建新的对象这样不仅可以减少内存还可以加快程序响应速度。但是在必须要创建新对象时不要复用对象。
书中对六、七条表述的意思是一种编码习惯。
在第六条中指明内存泄漏以及避免内存泄漏,以及在缓存中被忽略的过期引用。在编写关于内存方面的代码期间应该注意到内存溢出以及内存泄漏的问题,当对象被废弃或长久不使用时应废弃引用。这样不仅避免内存泄漏问题也可以避免在错误的方法上执行。
第七条尽量避免使用finalizer方法,不存在没有漏洞的方法 ,使用终极方法使代码行为不稳定、降低性能。
此次学习笔记。欢迎指正
网友评论