DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 設計模式PHP5實現之----策略(Strategy)
設計模式PHP5實現之----策略(Strategy)
編輯:AJAX詳解      日期:2016/12/30 17:55:00

<?PHP
/**
* 策略模式
*
* 策略(Strategy)模式適用於你有一個可以用兩個以上算法來解決的問題時候。解決方案的選擇表現為用戶做出的決定
* 這個模式也可以解決Web應用程序的多語言/風格表現問題
*
* @author doodoo<pwtitle@gmail.com>
*/

/**
* 字符串替換規則
*
* 這個例子假設對一段文章的替換提供兩種可選方案
*/
interface ReplaceRule{
 public function replace();
}

/**
* 方案一
*/
class ReplaceRuleOne implements ReplaceRule {
 public function replace(){
  $subject = str_replace("ABC","doodoo","這是待替換文本!ABC");
  return $subject;
 }
}

/**
* 方案二
*/
class ReplaceRuleTwo implements ReplaceRule {
 public function replace(){
  $subject = str_replace("ABC","PanWei","這是待替換文本!ABC");
  return $subject;  
 }
}


/**
* 算法解決類,以提供客戶選擇使用何種解決方案
*/
class Solve{
 private $strategy = null;
 
 public function __construct(ReplaceRule $rule){
  $this->strategy = $rule;
 }
 
 /**
 * 取得替換後的內容
 */
 public function getContext(){
  return $this->strategy->replace();
 }
}

// 調用第一種算法
$solve = new Solve(new ReplaceRuleOne());
$str = $solve->getContext();
echo $str;
echo "<BR>\r\n";

// 調用第二種算法
$solve = new Solve(new ReplaceRuleTwo());
$str = $solve->getContext();
echo $str;
?>

 

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved