Java言語で学ぶデザインパターン入門 マルチスレッド編 第2章 Immutable

マルチスレッドで困るのはインスタンスの状態を変化させる時に矛盾が生じてしまうことなので、状態を変化させることができないならばマルチスレッドでも何ら問題ない。とゆーわけで、コンストラクタで生成した後は状態を一切変化できないようにするのがImmutable。setterメソッドを定義しない。

public final class Person {
    private final String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}