ホームページ  >  記事  >  Java  >  Javaデザインパターンにおけるシングルトンパターンの詳細説明

Javaデザインパターンにおけるシングルトンパターンの詳細説明

WBOY
WBOYオリジナル
2024-05-09 14:51:02556ブラウズ

Java のシングルトン パターンは次の手順で実装されます: プライベート クラス コンストラクターを作成します。唯一のインスタンスへの参照としてプライベート静的変数を作成します。インスタンスを取得するためのパブリック静的メソッドを提供します。静的参照変数をfinalとして宣言します。実装クラスをfinalとして宣言します。

Javaデザインパターンにおけるシングルトンパターンの詳細説明

Java デザイン パターン: シングルトン パターン

はじめに

シングルトン パターンは、アプリケーション内にクラスのインスタンスが 1 つだけ存在できるようにする方法です。これにより、状態の一貫性が維持され、不必要なオブジェクトの作成が回避され、管理が簡素化されます。

Java でのシングルトン パターンの実装

Java では、次の手順を使用してシングルトン パターンを実装できます:

  1. プライベート コンストラクターを作成する: Chemical 外部からインスタンス化されないようにクラス コンストラクターをプライベートとして宣言します。カテゴリー。
  2. プライベート静的変数を作成する: 唯一のインスタンスへの参照として使用されるクラスのプライベート静的変数を作成します。
  3. パブリック静的メソッドを提供します: インスタンスを取得するためのパブリック静的メソッドを提供し、インスタンスがまだ作成されていない場合は最初にインスタンスを作成します。
  4. 変数をfinalとして宣言: 静的参照変数が再割り当てされないように、それらをfinalとして宣言します。
  5. クラスをfinalとして宣言する: 実装クラスをfinalとして宣言して、そのクラスのサブクラスが作成されないようにします。

サンプルコード:

public class Singleton {

    private static final Singleton INSTANCE = new Singleton();

    private Singleton() {
        // 私有构造函数
    }

    public static Singleton getInstance() {
        return INSTANCE;
    }

}

実際のケース

ユーザーセッションを管理するメッセージングアプリケーションを考えてみましょう。アプリケーションは、セッション全体を通じて現在のユーザーのアクティビティと設定を追跡するために、現在のユーザーへの一意の参照を維持する必要があります。シングルトン パターンは、次のようにこの一意のユーザー インスタンスを維持するために使用できます:

public class UserManager {

    private static final UserManager INSTANCE = new UserManager();
    private User currentUser;

    private UserManager() {
        // 私有构造函数
    }

    public static UserManager getInstance() {
        return INSTANCE;
    }

    public void setCurrentUser(User user) {
        this.currentUser = user;
    }

    public User getCurrentUser() {
        return currentUser;
    }

}

シングルトン パターンを使用することにより、UserManager クラスはユーザー セッション状態のコピーが 1 つだけ維持および管理されることを保証できます。これにより、ユーザー管理が簡素化され、アプリケーション間の一貫性が確保されます。

以上がJavaデザインパターンにおけるシングルトンパターンの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。