zoukankan      html  css  js  c++  java
  • 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());
    

      

  • 相关阅读:
    P、NP及NPC问题
    latex test3
    latex test2
    test
    整体二分
    bzoj2819 nim (树上带修改查询路径异或和)
    kmp模板题
    KM的三种写法比较
    电视转播
    树状数组处理区间查询和区间修改的问题
  • 原文地址:https://www.cnblogs.com/feiyujinghong/p/6386809.html
Copyright © 2011-2022 走看看