• 将类声明为 final,使其无法被继承。
    • 所有域都用 private 修饰,不允许直接访问。
    • 不提供变量的 setter 方法。
    • 所有可变域都用 final 修饰, 使它的值只能分配一次。
    • 通过构造函数执行深克隆初始化所有域。
    • 对 getter 方法获取的对象执行克隆以返回副本,而不是返回实际的对象引用。