• 不可变类


    什么是不可变类

    不可变对象(Immutable Objects)即对象一旦被创建它的状态(对象的数据,也即对象属性值)就不能改变,反之即为可变对象(Mutable Objects)。
    不可变对象的类即为不可变类。Java类库中有很多不可变类例如String,基本类的包装类BigInteger等。

    如何构造一个不可变类

    1、确保类不能被继承-将类声明为final,或使用静态工厂并将构造器声明为private。
    2、声明属性为private 和 final 。
    3、不要提供任何可以修改对象状态的方法 - 不仅仅是set方法, 还有任何其它可以改变状态的方法 。
    4、如果类有任何可变对象属性, 那么当它们在类和类的调用者间传递的时候必须被保护性拷贝
    示例:

    final class A{
     private String name;
     private B id;
     public A(B b,String name){
     this.name=name;
     this.id= new B(b);//创建b的私有拷贝,这是保持id为private的唯一方式。
     {
     public B getId(){
      return new B(id);
      }
      public String getName(){
      return this.name;
      }
      public void setName(String name){
      this.name=name;
      }
    }
    
  • 相关阅读:
    【20220924】双减(上)
    【20220920】连岳摘抄
    【20220918】周日的忧伤
    【20220919】连岳摘抄
    【20220922】连岳摘抄
    【20220925】双减(下)
    【20220926】人精鬼灵
    Vue Promise (回调地狱)
    Vue ES6模块化语法学习
    Vue async、await 的使用注意事项
  • 原文地址:https://www.cnblogs.com/jiaorenzhan/p/10623951.html
Copyright © 2020-2023  润新知