PHP には理解してマスターする必要があるパターンが多すぎます。長い間勉強して、いくつのパターンをマスターしたでしょうか? PHP でのアダプター モードとストラテジー モードの使用についてどのくらい知っていますか?この記事では、PHP でのアダプター モードとストラテジ モードの使用について説明します。一緒に学びましょう
関連する推奨事項:PHP のオブザーバー パターンとは何ですか?それの使い方?
アダプター:
世の中にはたくさんのアダプターがありますが、電源アダプターは 220v
に変換できる変圧器です。クラス 元々互換性のなかったインターフェイスが連携できるように、インターフェイスを顧客が望む別のインターフェイスに変換します。一般的な理解は、さまざまなインターフェイスを統一インターフェイスに適応させることです。
同様に、新しいファイルを作成してクラス クラスを定義します。クラス クラスにはメソッドがあります。そのようなクラスは知っていますが、持っているのはメソッドが 1 つあり、この時点でインターフェースを外部に公開する必要があるので、クラスを介してアダプター パターンを実装するにはどうすればよいでしょうか? 次のクラスは追加した新しいクラスであるため、クラスの作成を続けます。任意のメンバー メソッドを記述できます。オブジェクトを作成するときは、渡されたオブジェクトを保存する必要があります。例としてコードを見てみましょう:
<?php interface PerfectMan { function cook(); function writePhp(); } class Wife { function cook( ) { echo '最犀利的剑,只为最强大的手所挥动<br />'; } } class Man implements PerfectMan { protected $wife; //在创建对象的时候保存传递进来的对象 function __onstruct($wife) { $this->wife = $wife; } function cook( ) { $this->wife->cook(); } function writePhp() { echo '我会写php代码<br />'; } } $li = new Wife(); $ming = new Man( ) ; $ming->writePhp(); $ming->cook();
Strategy モード:
(1) 複数のクラスは区別のみ 異なる動作を表現する場合、Strategy モードを使用して、実行時に実行される特定の
動作を動的に選択できます。
(2) 状況に応じて異なる戦略 (アルゴリズム) を使用する必要があるか、将来的に戦略が他の方法で実装される可能性があります。
(3) 特定の戦略 (アルゴリズム) の実装の詳細は顧客には隠されており、相互に完全に独立しています。
(4) クライアントはすべての戦略クラスを知っていて、どれを使用するかを決定する必要があります。戦略モードは、クライアントがすべてのアルゴリズムまたは動作を知っている場合にのみ
適用されます。
(5) 戦略モデルは多くの戦略クラスを作成し、特定の戦略クラスごとに新しいクラスが生成されます。
利点:1. Strategy モードでは、関連するアルゴリズム ファミリを管理する方法が提供されます
2. アルゴリズムは独立した Strategy クラスに囲まれているため、コンテキストとは独立して変更できます
3。ストラテジ モードを使用すると、複数の条件付き転送ステートメントの使用を回避できます
コードは次のとおりです:<?php
interface Love
{
function sajiao();
}
class KeAi implements Love
{
function sajiao( )
{
echo '心怀不惧,才能翱翔于天际<br />';
}
}
class Tiger implements Love
{
function sajiao( )
{
echo '智商太低会传染,离我远点<br />' ;
}
}
class GirlFriend
{
protected $xingge;
function __construct($xingge)
{
$this->xingge = $xingge ;
}
function sajiao( )
{
$this->xingge->sajiao();
}
}
$keai = new KeAi;
$li = new GirlFriend($keai);
$li ->sajiao();
実行結果は以下の通り:
推奨学習: 「
PHP Video Tutorial以上がPHP におけるアダプター モードとストラテジ モードの適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。