PHP の例を使用したシングルトン パターンの理解

PHPz
リリース: 2024-08-25 06:39:32
オリジナル
971 人が閲覧しました

Understanding the Singleton Pattern with PHP Example

PHP の例を使用したシングルトン パターンの理解

シングルトン パターンは、クラスのインスタンス化を単一のインスタンスに制限する設計パターンです。これは、システム全体のアクションを調整するために 1 つのオブジェクトだけが必要な場合に特に便利です。

シングルトン パターンの主な特徴

  • プライベート コンストラクター: クラスの外部からの直接インスタンス化を防ぎます。
  • 静的メソッド: インスタンスへのグローバル アクセス ポイントを提供します。
  • 遅延初期化: インスタンスは必要な場合にのみ作成されます。

このシナリオを想像してください

シングルトン パターンをよりよく理解するために、1 人だけが所有できる特別なおもちゃを持つというような、より単純な言葉で考えてみましょう。仕組みは次のとおりです:

  1. 1 つのおもちゃ: とても特別な魔法の杖を想像してみてください。この魔法の杖を一度に持てるのは 1 人の子供だけです。他の人が使いたい場合は、その子に頼まなければなりません。

  2. 安全に保管する: この子は魔法の杖を安全な場所 ​​(おもちゃ箱など) に保管し、他の人が勝手につかんで持ち去ってしまうことがないようにしています。

  3. おもちゃを求める: 友達が魔法の杖で遊びたいときは、特別な子供に頼まなければなりません。お子様は共有しますが、いつ、どのように共有するかを決定できるのはお子様だけです。

これがシングルトン パターンとどのように関連するか

  • 1 つのインスタンス: 魔法の杖が 1 つだけあるのと同じように、シングルトン パターンでは、クラスのインスタンス (またはコピー) が 1 つだけあります。このクラスは、オブジェクト (おもちゃなど) を作成するための青写真と考えることができます。

  • プライベート アクセス: おもちゃ箱 (またはコンストラクター) は他の人には閉鎖されています。これは、誰も新しい魔法の杖を作成できないことを意味します。彼らは存在する 1 つの杖を使用する必要があります。

  • おもちゃの入手: 魔法の杖 (またはクラス) を使用したいときは、特別なドア (getInstance() と呼ばれるメソッド) を通過する必要があります。このドアは、魔法の杖がすでにそこにあるかどうかを確認します。そうでない場合は、それを作成して彼らに渡します。

PHP での例

PHP でのシングルトン パターンの簡単な実装を次に示します。

class MagicWand {
    private static $instance = null; // This is our one and only wand

    // This keeps anyone from making a new wand
    private function __construct() {
    }

    // This is the door to get the wand
    public static function getInstance() {
        if (self::$instance === null) {
            self::$instance = new MagicWand(); // Making the wand if it doesn't exist
        }
        return self::$instance; // Giving back the wand
    }

    public function castSpell() {
        echo "Casting a spell!";
    }
}

// Using the magic wand
$wand = MagicWand::getInstance();
$wand->castSpell(); // Now we can cast spells with the one and only wand!
ログイン後にコピー

まとめ

このたとえでは:

  • 魔法の杖はシングルトン クラスを表します。
  • One Child は、アクセスを制御する単一のインスタンスを象徴しています。
  • Toy Box はコンストラクターをプライベートに保ち、誰も追加のインスタンスを作成できないようにします。
  • 特別なドアは、魔法の杖へのアクセスを許可する getInstance() メソッドです。

魔法の杖を持てるのは子供が 1 人だけであるのと同じように、プログラミングではシングルトン パターンを利用して、クラスのインスタンスが 1 つだけ存在するようにし、全員が使用したいときにそのインスタンスを要求する必要があります。

このパターンは、リソースを効率的に管理し、アプリケーション全体で一貫した状態を維持するのに役立ち、ソフトウェア設計において不可欠な概念となります。

リファクタリングの達人 - シングルトン パターン

以上がPHP の例を使用したシングルトン パターンの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート