CI フレームワークを使用するプロセスでは、$ci スーパー変数が get_instance() を通じて取得されるものは常に同じ CI オブジェクトであることがわかります
これを行う方法を紹介します。利点:
シングルトン パターンは責任パターンとみなされ、アプリケーション内で単一の機能アクセス ポイントを作成するために使用されます。
オブジェクト作成の制御を単一のアクセス ポイントに委任します。常に、このクラスのインスタンスはアプリケーション内に 1 つだけ存在します。
これにより、データベースへの複数の接続を開いたり、不必要なシステム リソースを使用したりすることがなくなります。
より複雑なシステムでは、シングルトン パターンの使用は、アプリケーション状態の同期を維持するのにも特に役立ちます。
すべてのシングルトン クラスには、少なくとも次の 3 つのパブリック要素があります: コンストラクターが必要であり、プライベートとしてマークされている必要があります。 これらには、クラスのインスタンスを保持する静的メンバー変数があります。
このインスタンスにアクセスするための public static メソッドがあります。通常のクラスとは異なります。
シングルトン クラスは他のクラスで直接インスタンス化できません。シングルトン クラスはそれ自体でのみインスタンス化できます。
そのような結果を取得するには、__construct() メソッドをプライベートとしてマークする必要があります。プライベート コンストラクターを使用してクラスを構築しようとすると、アクセシビリティ レベル エラーが発生します。
シングルトン クラスが機能するには、他のクラスのインスタンスを提供し、それを使用してさまざまなメソッドを呼び出す必要があります。
シングルトン クラスはインスタンスのコピーを作成しませんが、シングルトン クラス内に格納されているインスタンスへの参照を返します。
その結果、シングルトン クラスはメモリとシステム リソースを重複させず、アプリケーションの他の部分がこれらのリソースをより効率的に使用できるようになります。
このパターンの一部として、オブジェクトがコピーまたはクローン作成されないように、空のプライベート __clone() メソッドを作成する必要があります。 インスタンス参照を返すこのメソッドは通常、getTnstance() という名前になります。このメソッドは静的である必要があり、まだインスタンス化されていない場合はインスタンス化する必要があります。
getInstance() メソッドは、instanceof 演算子と self キーワードを使用してクラスがインスタンス化されているかどうかを検出できます。
この記事は PHP 中国語 Web サイトから提供されており、シングルトン モードを使用する必要がある理由を紹介しています。
記事のアドレス: http://www.php.cn/php-weizijiaocheng-377485.html
プログラミングを学ぶには、PHP 中国語 Web サイト www.php.cn
以上がCI フレームワークでシングルトン パターン設計を使用する利点の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。