不変オブジェクトとは何ですか? Java で不変オブジェクトを作成するにはどうすればよいですか?

 不変オブジェクトとは、一度作成すると状態を修正または変更できないオブジェクトです。Java では、不変オブジェクトには次の特性があります。

  1. 状態耐性: オブジェクトのプロパティ値は変更できません。

  2. スレッド セーフ: 不変オブジェクトの状態は変更できないため、マルチスレッド アクセスに追加の同期手段は必要なく、スレッド セーフです。

  3. セキュリティ (セキュリティ): 不変オブジェクトの値は悪意を持って変更できないため、セキュリティが重要なコンテキストに適しています。

  4. 再利用性: 不変オブジェクトは状態が変わらないため、副作用を気にすることなく何度でも使用できます。

  不変オブジェクトを作成するには、いくつかの手順を実行する必要があります。

  1. クラス宣言を最終的なものにする

  クラスをfinal宣言すると、他のクラスがそのクラスを継承できなくなり、サブクラスがその状態を変更できなくなります。

  2. プロパティをプライベートおよびファイナルとして宣言します

  プロパティが外部から直接アクセスできないこと、また割り当て後に変更できないことを確認してください。

  3. 状態を変更するメソッドが提供されていない

  setter メソッドなど、オブジェクトの状態を変更するメソッドを提供しないでください。

  4. 読み取り専用メソッドを提供する

  オブジェクトのプロパティ値を取得するメソッドは提供しますが、プロパティ値を変更するメソッドは提供しません。

  以下は、不変 Java クラスを作成する方法を示す例です。

public final class ImmutablePerson {
    private final String name;
    private final int age;

    public ImmutablePerson(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

  この例では、Immutableperson クラスにはコンストラクターでのみ初期化できる 2 つのプライベート Final プロパティがあり、それらを変更するメソッドは提供されていません。したがって、Immutableperson は、一度作成されると状態を変更できない不変オブジェクトです。

  上記のパターンに従うことで、コードの保守性、スレッドの安全性、セキュリティの確保に役立つ不変オブジェクトを作成できます。

おすすめ

転載: blog.csdn.net/Blue92120/article/details/132445039