使某一个类变成非可变类应该遵循下面四条规则:
1,不要提供任何会修改对象的方法(mutator)。
2,保证没有可被子类改写的方法。
3,所有域都是final的。
4,保证对于任何可变组件的互斥访问。不要使用用户提供的对象初始化这样的非可变类的域,不要在任何访问方法中返回该对象的引用。
非可变类的优点:
1,比较简单,只有一个状态。
2,线程安全。
3,可以被自由的共享。
缺点:
1,不同的值需要不同的实例。
使某一个类变成非可变类应该遵循下面四条规则:
1,不要提供任何会修改对象的方法(mutator)。
2,保证没有可被子类改写的方法。
3,所有域都是final的。
4,保证对于任何可变组件的互斥访问。不要使用用户提供的对象初始化这样的非可变类的域,不要在任何访问方法中返回该对象的引用。
非可变类的优点:
1,比较简单,只有一个状态。
2,线程安全。
3,可以被自由的共享。
缺点:
1,不同的值需要不同的实例。