中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP設計模式-策略模式Strategy

發布時間:2020-08-28 10:14:16 來源:網絡 閱讀:967 作者:侯施群 欄目:web開發

1.策略模式概念
策略模式針對一組算法,將每一個算法封裝到具有共同接口的獨立的類中,此模式讓算法的變化獨立于使用算法的客戶。從而讓程序結構更靈活,具有更好的擴展性和維護性
2.策略模式結構圖
PHP設計模式-策略模式Strategy
3.策略模式角色說明
    抽象策略(Strategy)角色:定義所有支持的算法的公共接口。通常是以一個接口或抽象來實現。Context使用這個接口來調用其ConcreteStrategy定義的算法。
    具體策略(ConcreteStrategy)角色:以Strategy接口實現某具體算法
    環境(Context)角色:持有一個Strategy類的引用,用一個ConcreteStrategy對象來配置
4.策略模式實例 

<?php
/**
 * 抽象策略角色,以接口實現
 */
interface Strategy {  
  /**
   * 算法接口
   */
  public function algorithmInterface();
}  
/**
 * 具體策略角色A
 */
class ConcreteStrategyA implements Strategy {
  
  public function algorithmInterface() {
    echo 'algorithmInterface A<br />';
  }
}  
/**
 * 具體策略角色B
 */
class ConcreteStrategyB implements Strategy {
  
  public function algorithmInterface() {
    echo 'algorithmInterface B<br />';
  }
}  
/**
 * 具體策略角色C
 */
class ConcreteStrategyC implements Strategy {
  
  public function algorithmInterface() {
    echo 'algorithmInterface C<br />';
  }
}
  
/**
 * 環境角色
 */
class Context {
  /* 引用的策略 */
  private $_strategy;
  
  public function __construct(Strategy $strategy) {
    $this->_strategy = $strategy;
  }
  
  public function contextInterface() {
    $this->_strategy->algorithmInterface();
  }
  
}  
/**
 * 客戶端
 */
class Client {
  
  /**
   * Main program.
   */
  public static function main() {
    $strategyA = new ConcreteStrategyA();
    $context = new Context($strategyA);
    $context->contextInterface();
  
    $strategyB = new ConcreteStrategyB();
    $context = new Context($strategyB);
    $context->contextInterface();
  
    $strategyC = new ConcreteStrategyC();
    $context = new Context($strategyC);
    $context->contextInterface();
  }
  
}  
Client::main();
?>
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安溪县| 香港| 和平区| 平顶山市| 洞口县| 美姑县| 米易县| 福贡县| 湾仔区| 榆中县| 区。| 昭觉县| 新安县| 大丰市| 德州市| 土默特右旗| 渭源县| 新干县| 青铜峡市| 西畴县| 牡丹江市| 黎平县| 方山县| 宾川县| 古浪县| 盐山县| 通榆县| 德昌县| 金堂县| 彭州市| 阳春市| 江口县| 祁阳县| 米易县| 定南县| 崇仁县| 阳西县| 临泉县| 额尔古纳市| 庄河市| 宁强县|