欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java中的不可变类的设计模式

程序员文章站 2022-07-13 09:19:06
...
在Java中有两种基本类类型,就是可变类与不可变类。所谓不可变类,是指当创建了这个类实例之后,就不允许修改它的任何属性值。在JDK的基本类库中,所有基本类型的包装类,比如Integer类和Long类,都是不可变类,还有最常见的就是java.lang.String类也是不可变类。

那么创建自己的不可变类时,需要考虑的基本设计模式如下:
(1)把所有属性定义为private final类型。
(2)不对外公开用于修改属性的setXXX()方法。
(3)只需要公开用于读取属性值的getXXX()方法。
(4)在构造方法中初始化类中的所有属性。
(5)覆盖Object类中的equals()和hashCode()方法。在equals()方法中根据对象的属性值来比较两个对象是否相等,并且保证用equals()方法判断为相等的两个对象的hashCode()方法的返回值也相等。
(6)如果需要的话,提供实例缓存和静态工厂方法,允许用户根据特定参数获得与之匹配的实例。


相关标签: java immutable