首頁  >  文章  >  後端開發  >  PHP中有關於適配器模式和策略模式的運用

PHP中有關於適配器模式和策略模式的運用

慕斯
慕斯原創
2021-06-23 15:17:261646瀏覽

PHP中有太多模式需要我們去理解,去掌握,不知道學習了這麼久你們掌握了多少中模式了? PHP中有關於適配器模式和策略模式的運用你們有多少了解呢?這篇文章會教你們PHP中有關於適配器模式和策略模式的運用,一起學習吧

相關推薦:PHP中什麼是觀察者模式?如何運用?

適配器:

生活中就有很多適配器電源適配器就是裡面的變壓器220v

可將-一個類的接口轉換成客戶希望的另外-一個接口,使得原本不相容的接口能夠-一起工作。通俗的理解就是將不同接口適配成統--的接口

一樣我們新建一個文件,定義一個class類,在class類裡面有一個方法,已知這樣一個類,但是我們只有一個方法,而此時我們需要對外公開一個接口,那麼我們如何透過一個類別來實現適配器模式,我們繼續寫個類,因為下面的類是我們新增加的一個類,因此我們可以寫任何的成員方法,而且我們在創建物件的時候要保存傳遞進來的物件;我們以程式碼為例:

<?php
interface PerfectMan
{
  function cook();
  function writePhp();
}
class Wife
{
  function cook( )
{
  echo &#39;最犀利的剑,只为最强大的手所挥动<br />&#39;;
}
}
class Man implements PerfectMan
{
  protected $wife;
  //在创建对象的时候保存传递进来的对象
  function __onstruct($wife)
  {
  $this->wife = $wife;
  }
  function cook( )
  {
    $this->wife->cook();
  }
  function writePhp()
  {
    echo &#39;我会写php代码<br />&#39;;
}
}
$li = new Wife();
$ming = new Man( ) ;
$ming->writePhp();
$ming->cook();

#策略模式:

(1)多個類別只區別在表現行為不同,可以使用Strategy模式,在執行時動態選擇具體

#要執行的行為。

(2)需要在不同情況下使用不同的策略(演算法),或者策略也可能在未來用其它方式來

實作。

(3)對客戶隱藏具體策略(演算法)的實作細節,彼此完全獨立。

(4)客戶端必須知道所有的策略類,並自行決定使用哪一一個策略類,策略模式只適用

於客戶端知道所有的演算法或行為的情況。

(5)策略模式造成很多的策略類,每個特定策略類都會產生一一個新類。

優點:

1、策略模式提供了管理相關的演算法族的辦法

2、演算法封閉在獨立的Strategy類別中使得你可以獨立於其Context改變它

3、使用策略模式可以避免使用多重條件轉移語句

#程式碼如下:##

<?php
interface Love
{
  function sajiao();
}
class KeAi implements Love
{
  function sajiao( )
{
  echo &#39;心怀不惧,才能翱翔于天际<br />&#39;;
}
}
class Tiger implements Love
{
  function sajiao( )
{
  echo &#39;智商太低会传染,离我远点<br />&#39; ;
}
}
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中有關於適配器模式和策略模式的運用

推薦學習:《

PHP影片教學

以上是PHP中有關於適配器模式和策略模式的運用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn