今回は、PHP 登録ツリー モードの使用方法について詳しく説明します。PHP 登録ツリー モードを使用する際の 注意事項 は何ですか?実際の事例を見てみましょう。
登録ツリーモードとは何ですか?
登録ツリーモードは、もちろん登録モードやレジストラモードとも呼ばれます。ここであえて名前を付けたのは、名前登録ツリーの方が分かりやすいと思うからです。前の 2 つの記事と同様に、この記事も名前から始まります。登録ツリー パターンは、オブジェクト インスタンスをグローバル オブジェクト ツリーに登録し、必要に応じてオブジェクト ツリーから選択するパターン設計方法です。これを聞くと、私が子供の頃に砂糖漬けのサンザを棒に付けて買ったのを思い出します。砂糖漬けのサンザの売り手は砂糖漬けのサンザを大きな棒に刺し、人々はそれを買うときにそれを外していました。違いは、登録ツリー モデルは摘んだ後もそれを保持し、何度でも摘むことができますが、砂糖漬けのサンザシは一度摘むと消えてしまうことです。 。 。なぜ登録ツリーモードを使用するのですか?
シングルトン パターンはプロジェクト全体で一意のオブジェクト インスタンスを作成する方法の問題を解決し、ファクトリ パターンは new を使用せずにインスタンス オブジェクトを作成する方法の問題を解決します。 それでは、登録ツリー モードはどのような問題を解決したいのでしょうか? この問題を検討する前に、最初の 2 つのモデルが現在直面している制限を考慮する必要があります。まず、シングルトンモードでユニークなオブジェクトを作成するプロセス自体に、登録ツリーを実装するにはどうすればよいですか?
上記の説明を通じて、解決策は簡単に見つかったようです。もちろん、最初に登録ツリーとしてクラスが必要です。すべてのオブジェクトが登録ツリーに「挿入」されます。この登録ツリーは静的変数によって提供される必要があります。そして、この登録ツリーは 2 次元配列である必要があります。このクラスには、オブジェクト インスタンス () を挿入するメソッドが必要です。これで、登録ツリー モードが完成です~~~set()
),当让相对应的就应该有一个撤销对象实例 的方法(_unset()
)。当然最重要的是还需要有一个读取对象的方法(get()
<?php //创建单例 class Single{ public $hash; static protected $ins=null; final protected function construct(){ $this->hash=rand(1,9999); } static public function getInstance(){ if (self::$ins instanceof self) { return self::$ins; } self::$ins=new self(); return self::$ins; } } //工厂模式 class RandFactory{ public static function factory(){ return Single::getInstance(); } } //注册树 class Register{ protected static $objects; public static function set($alias,$object){ self::$objects[$alias]=$object; } public static function get($alias){ return self::$objects[$alias]; } public static function _unset($alias){ unset(self::$objects[$alias]); } } Register::set('rand',RandFactory::factory()); $object=Register::get('rand'); print_r($object);この時点で、3 つのモードのデザインが紹介されます。さまざまなパターン デザイン自体が相互に補完し合い、将来他のパターンを導入する際には、多かれ少なかれ 1 つまたは複数の他のデザイン パターンが使用されることになります。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 推奨書籍:
PHP で重回帰シミュレーション曲線アルゴリズムを実装する手順の詳細な説明
以上がPHP登録ツリーモードの使い方の詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。