zoukankan      html  css  js  c++  java
  • PHP策略模式

    策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。

    策略模式指的是程序中涉及决策控制的一种模式。策略模式功能非常强大,因为这个设计模式本身的核心思想就是面向对象编程的多形性思想。

    策略模式的三个角色:

    1.抽象策略角色

    2.具体策略角色

    3.环境角色(对抽象策略角色的引用)

    实现步骤:

    1.定义抽象角色类(定义好各个实现的共同抽象方法)

    2.定义具体策略类(具体实现父类的共同方法)

    3.定义环境角色类(私有化申明抽象角色变量,重载构造方法,执行抽象方法)

    就在编程领域之外,有许多例子是关于策略模式的。例如:

    如果我需要在早晨从家里出发去上班,我可以有几个策略考虑:我可以乘坐地铁,乘坐公交车,走路或其它的途径。每个策略可以得到相同的结果,但是使用了不同的资源。

    策略模式非常适合复杂数据管理系统或数据处理系统,二者在数据筛选、搜索或处理的方式方面需要较高的灵活性

    demo

    <?php

    interface pzhang{//抽象策略角色

       public function say();

    }

    class A implements pzhang{//具体策略角色

        public function say(){

               echo "说see you";

      }

    }

    class B implements pzhang{

         public function say(){

               echo "说 good bay";

       }

    }

    class  question{

         private $test;

         public function __construct(Pzhang $pzhang){

             $this->test = $pzhang;

          } 

        public function handle(){

            $this->test->say();

        }

    }

    $a = new A();

    $res = new question($a);

    $res->handle();

    $b = new B();

    $res = new question($b);

    $res->handle();

    ?>

  • 相关阅读:
    火狐下,td 的 bug;
    在centos6.3用yum安装redis
    Linux系统下修改环境变量PATH路径的三种方法
    网络文件常常提到类似"./run.sh"的数据,这个命令的意义是什么?
    DataGridView的自定义列排序
    【Linux】linux常用基本命令
    用户名 不在 sudoers文件中,此事将被报告。(转)
    将XML文件中的内容转换为Json对象
    C# 加载xml文档文件及加载xml字符串
    增加不存在的列
  • 原文地址:https://www.cnblogs.com/isuansuan/p/9755502.html
Copyright © 2011-2022 走看看