策略模式

  1. 多個類之區別在表現行爲不同,可以使用strategy模式,在運行時動態選擇具體要執行的行爲
  2. 需要在不同的情況下使用不同的策略(算法),或者策略可以在未來用其他方式來實現
  3. 對客戶隱藏具體策略(算法)的具體實現細節,彼此完全獨立
  4. 客戶端必須知道所有的策略類,並且自行決定使用哪一個策略類,策略模式只適用於客戶端知道所有的算法或行爲的情況
  5. 策略模式造成很多的策略類,每個具體策略類都會產生一個新類

優點:

1.策略模式提供了管理相關算法族的方法
2.算法封閉在獨立的stratege中,使得你可以獨立於其context改變他
3.使用策略模式可以避免使用多重條件轉移語句

代碼:

<?php

interface Love{
    function sajiao();
}

 class KeAI implements Love
 {
     function sajiao()
     {
         echo "討厭,不理你了";
     }
 }

 class Tiger implements Love
 {
     function sajiao()
     {
         echo "給老孃過來";
     }
 }

 class GirlFriend
 {
     protected $xingge;
     public function __construct($xingge)
     {
        $this->xingge = $xingge;
     }

     public function sajiao()
     {
         $this->xingge->sajiao();
     }
 }

 $keai = new KeAI();
//$tiger = new Tiger();
$girlfriend = new GirlFriend($keai);
$girlfriend->sajiao();
發佈了65 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章