合理利用Java不可变对象,让你的代码更加优雅

如果一个对象的状态在创建以后就不会再改变,那么就可以认为它是不可变对象。因为这些对象无法被修改,所以不需要考虑多线程下的同步问题,这使得不可变对象在多线程程序中能够发挥重大作用。

公司专注于为企业提供网站建设、成都网站制作、微信公众号开发、商城网站开发微信小程序开发,软件定制网站设计等一站式互联网企业服务。凭借多年丰富的经验,我们会仔细了解各客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,成都创新互联公司更提供一系列网站制作和网站推广的服务。

如下所示,String对象就是一个不可变对象。

合理利用Java不可变对象,让你的代码更加优雅
对于firstName一些列的操作(连接" "和lastName)并不会修改这些字符串中的任何一个,而是会重新创建一个新的对象来存放fullName。

合理利用Java不可变对象,让你的代码更加优雅
自定义一个不可变对象
如下的规则能够帮助我们创建一个不可变的对象:

不要提供setter方法。一般setter方法都是用来提供修改对象field的,既然是不可变的对象,那么肯定没有修改功能的,所以也不要提供setter方法。
把所有的对象field都设置为final和private。这能够保证在对象外部是无法访问到对象内部的filed的。
不允许派生类覆盖方法,最简单的办法就是把类定义为final的,这样就直接不能够派生了。更加优雅的做法是把构造方法设置private的,然后提供相应的工厂方法来实例化它。
如果类的字段是其它可变对象的引用,它们也要被设置为不允许修改:a、不要提供修改这些可变字段的方法。b、不要对外暴露这些可变对象的引用。
演示如何定义一个不可变对象
合理利用Java不可变对象,让你的代码更加优雅
不可变对象的好处
不可变对象更容易创建、测试和使用,因为他们没有任何的副作用。
它们更加容易被缓存起来,同一个对象不会被修改,所以不需要考虑缓存不一致的问题。
真正的不可变对象肯定是线程安全的。


新闻标题:合理利用Java不可变对象,让你的代码更加优雅
文章位置:http://bzwzjz.com/article/jodpcc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都模版网站建设 做网站设计 广安网站设计 上市集团网站建设 成都响应式网站建设 外贸网站建设 响应式网站设计 移动手机网站制作 成都企业网站建设 网站建设方案 成都网站设计 泸州网站建设 成都网站制作 重庆外贸网站建设 响应式网站设计方案 app网站建设 网站设计 成都网站建设 重庆网站设计 成都网站设计制作公司 专业网站设计 网站设计