标签:method init logs blog 相互 div echo 方法 highlight
<?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());
标签:method init logs blog 相互 div echo 方法 highlight
原文地址:http://www.cnblogs.com/feiyujinghong/p/6386809.html