不可变对象

状态不可变对象需要满足以下要求:
1、类本身使用final修饰:防止子类修改其定义
2、所有字段都用final修饰,保证字段被其他线程可见时已经被初始化
3、创建的过程中,不泄露this关键字给其他类,包括匿名内部类
4、若某个字段引用了其他的状态可变对象,例如数组等,这些字段必须由private修饰,并且值不能对外暴露。若有相关方法要返回这些字段,要做防御性复制(深拷贝)。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容