一个菜鸟驿站!

浅谈设计模式-策略模式

PHP 2018-07-08 浏览(640) 评论(0)
- N +

文章目录 [+]

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

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

策略模式总览

策略模式的三个角色

        1. 抽象策略角色。

        2. 具体策略角色。

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

实现步骤

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

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

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

那么什么是工厂模式(用例子来形容策略模式)

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

具体代码

<?php
//抽象策略类
abstract class Type { 
    abstract function work();
}
//坐公交(环境角色)
class Bus extends Type {
    function work() {
        return '坐公交';
    }
}
//自行车(环境角色)
class Bicycle extends Type {
    function work() {
        return '骑自行车';
    }
}
//具体策略角色
class GoToWork { 
    public function call($object) {
            return $object->work ();
        }
    }
$work = new GoToWork ();
echo $work->call ( new Bus () );

致谢

感谢各位看完本篇文章,最近几天一直在学习,也顺便整理一些文章,希望能够对类似我一样的菜鸟一些帮助,也同时希望大佬们有所指教,共同学习,谢谢。

标签:
作者:猫巷

,

评论列表 (0)条评论

发表评论

召唤伊斯特瓦尔