开发者社区 问答 正文

[@wangccsy][¥20]什么是不可变对象(immutable object)?Java 中怎么创建一个不可变对象?

问题来自Java技术沙龙的李博
Java线下沙龙报名链接:https://yq.aliyun.com/activity/796

展开
收起
李博 bluemind 2018-12-13 14:16:50 2151 分享 版权
1 条回答
写回答
取消 提交回答
  • 前一个帐号wangccsy@126.com不知道怎么的就成了企业帐号,改不成个人。所以重新注册了一个个人帐号。老程序员。精通JAVA,C#,数据库,对软件开发过程和流程熟悉。考取系统分析师,项目管理师和系统架构设计师等软件资格考试认证。愿意和大家一起前进。
    不要使用setter方法--一般setter方法是更改对象中的字段的方法。
    定义所有的字段为final和private
    不要允许子类覆写类中的方法,最简单的方法就是声明该类为final,一个更复杂的方法就是定义构造器为private,创建实例时,使用工厂方法。
    如果实例字段包含引用的对象,不要使这些对象改变:(1)不要提供更改可变对象的方法(2)不要共享对可变对象的引用,不要存储传给构造器的外部可变对象的引用;如果有必要,复制一个对象,并存储其副本的引用。同样的,有必要时类中的方法返回内部可变对象的副本而不是原对象。
    
    2019-07-17 23:20:36
    赞同 展开评论