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

  • 相关阅读:
    浅谈Chrome V8引擎中的垃圾回收机制
    selenium反爬机制
    03 HTTP协议与HTTPS协议
    HTTP缓存机制和原理
    python 自动发送邮件
    02 Anaconda的介绍,安装记以及使用
    01 关于jupyter的环境安装
    SQLAlchemy
    django-debug-toolbar
    flask 第十篇 after_request before_request
  • 原文地址:https://www.cnblogs.com/phpworld/p/7490588.html
Copyright © 2011-2022 走看看