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.使用策略模式完成依赖倒置,属于解耦的过程;

  • 相关阅读:
    leetcode刷题 557~
    Unity正交相机智能包围物体(组)方案
    Embedded Browser(ZFBrowser)使用相关问题
    Unity性能优化
    sipp的使用
    Elment清除表单验证,防止报错小技巧
    git常用命令(干货)
    文本单词one-hot编码
    86. 分隔链表 链表
    5638. 吃苹果的最大数目 优先队列
  • 原文地址:https://www.cnblogs.com/phpworld/p/7490588.html
Copyright © 2011-2022 走看看