zoukankan      html  css  js  c++  java
  • php设计模式--策略模式

        策略模式就是将特定的行为封装成一个类,来适应特定的用户某些特定的情况。例如:在面向过程的开发中总是使用if...else.....这种属于硬编码的形式,当有些条件在修改的时候我们还要去调整if  else的程序 。现在就来搞一搞策略模式。

    <?php
    interface UserStrategy
    {
        function showad();
        function showcat();
    }
    
    
    class Man implements UserStrategy
    {
        function showad()
        {
            echo 'macbook';
        }
    
        function showcat()
        {
            echo 'mac_dev';
        }
    }
    
    class Woman implements UserStrategy
    {
        function showad()
        {
            echo 'woman_ad';
        }
        function showcat()
        {
            echo 'woman_cat';
        }
    }
    
    
    class pick
    {
    	private $_act;
    	function pickecho()
    	{
    		$this->_act->showcat();
    		$this->_act->showad();
    	}
    	function setact($Strategy)
    	{
    		$this->_act = $Strategy;
    	}
    }
    
    
    $pickclass = new pick();
    //针对woman
    $pickclass->setact(new Woman());
    $pickclass->pickecho();
    echo "<br/>";
    //针对man
    $pickclass->setact(new Man());
    $pickclass->pickecho();
    

      

    总结:

    1.在代码中需要变化的地方,把它们独立出来,不要和那些不需要变化的代码混在一起;

    2.针对接口编程,不针对实现编程;

    3.多用组合,少用继承;

    4.使用策略模式完成依赖倒置,属于解耦的过程;

  • 相关阅读:
    Java中断机制
    RPC原理
    synchronized和ReentrantLock的区别
    dubbo入门
    Zookeeper入门
    分布式事务
    Mysql索引会失效的几种情况
    java代码执行过慢的问题定位
    持续集成
    Mycat 数据库分库分表中间件
  • 原文地址:https://www.cnblogs.com/phpworld/p/7490588.html
Copyright © 2011-2022 走看看