PHP設計模式之策略模式

<?php
//策略模式定義:定義一系列的算法,把它們一個個封裝起來, 而且使它們可相互替換。本模式使得算法的變化可獨立於使用它的客戶。

/**
 * 定義策略接口
 */
interface StrategyInterface{
	//強制策略類實現的方法
	public function method();
}
/**
 * 抽象策略類
 */
abstract class Strategy implements StrategyInterface{
	//強制策略子類實現該方法
	abstract public function method();

	public function init(){
		echo "我是公共方法".PHP_EOL;
	}
}

class Strategy1 extends Strategy{
	//實現接口方法
	public function method(){
		echo "我是策略方法1".PHP_EOL;
	}
}

class Strategy2 extends Strategy{
	//實現接口方法
	public function method(){
		echo "我是策略方法2".PHP_EOL;
	}
}
/**
 * 客戶端類
 */
class Client{
	public function getMethod(Strategy $Strategy){
		$Strategy->method();
	}
}

$obj = new Client();
$obj -> getMethod(new Strategy1());
$obj -> getMethod(new Strategy2());
相關文章
相關標籤/搜索