美文网首页
第十五条:使类的可变性最小化

第十五条:使类的可变性最小化

作者: 998584f56259 | 来源:发表于2016-09-17 11:43 被阅读84次

不可变的类只是实例不能被修改的类。每个实例中包含订单所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期内固定不变。不可变的类有String、基本类型的包装类、BigInteger和BigDecimal。

要实现不可变的类需要满足一下几点要求:
1、不要提供任何会修改对象状态的方法。(setter方法)
2、保证类不会被扩展。用final修饰类或者是私有化构造器提供公有静态工厂方法。
3、使所有的域都是final的。
4、使所有的域都成为私有的。
5、确保对于任何可变组件的互斥访问。
如果类具有指向可变对象的域,则必须确保该类的客户端无法获得指向这些对象的引用。并且,永远不要用客户端提供的对象引用来初始化这样的域,也不要从任何访问方法中返回该对象的引用。在构造器、访问方法和readObject中请使用保护性拷贝。

相关文章

  • 第十五条:使类的可变性最小化

    不可变的类只是实例不能被修改的类。每个实例中包含订单所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期...

  • 第四章类和接口

    目录 使类和成员的可访问性最小化 在公共类中使用访问方法而不是公共属性 最小化可变性 组合优于继承 如果使用继承则...

  • 使可变性最小

    第十五条:使可变性最小 1.什么是不可变类? (1)需要的所有参数必须在实例化的时候都传进去。(2)对象中所有信息...

  • 提示十七

    今天来看提示十七:使可变性最小化。 不可变类简单来说是其实例不能被修改的类。 包含在每个实例中的所有信息在对象的生...

  • 第15条:使可变性最小化

    不可变类是指:其实例不能被修改的类。每个实例中包含的所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期...

  • Effective-java 3 中文翻译系列 (Item 17

    原文链接 文章也上传到的 github (欢迎关注,欢迎大神提点。) ITEM 17 使可变性最小化 一个不可变的...

  • effective java 第四章 (笔记)

    第4章 类和接口 *** 第13条:使类和成员的可访问性最小化 *** 信息隐藏或封装 访问控制机制决定了类、接口...

  • Effective Java 第15条: 使可变性最小化

    不可变类:其实例不可以被修改的类.每个实例中包含的所有信息都必须在创建该实例的时候就提供,并在对象的整个生命周期内...

  • Effective Java(第3版)第4章总结

    第15条:使类和成员的可访问性最小化 正确使用public、protected、private三个修饰符 第16条...

  • EffectiveJava第4章-类和接口

    第13条:使类和成员的可访问性最小化 这个被称为信息隐藏或封装。它可以解耦,使模块可以独立开发、测试、优化、使用、...

网友评论

      本文标题:第十五条:使类的可变性最小化

      本文链接:https://www.haomeiwen.com/subject/syaiettx.html