PHP设计模式:策略模式

2019-06-18  本文已影响0人  Zed_790e

前言

策略模式的应用非常的多,尤其在商城中更是经常会被用到,打个比方,我们生活中经常遇到的优惠,优惠就有很多的策略,

代码

<?php

//定义一个同学抽象类
abstract class ClassMateStrategy
{
    //定义一个行为的方法
    abstract public function behavior();
}

//定义一个同学:小明
class XiaoMing extends ClassMateStrategy
{
    public function behavior()
    {
        echo '小明告诉了老师:XX被打了' . PHP_EOL;
    }
}

//定义一个同学:张三
class ZhangSan extends ClassMateStrategy
{
    public function behavior()
    {
        echo '张三大吼一声吗个鸡打我同学!(张三加入了打架)' . PHP_EOL;
    }
}

//定义一个同学:李梅
class LiMei extends ClassMateStrategy
{
    public function behavior()
    {
        echo '李梅打开一瓶八二年的可乐默默看着' . PHP_EOL;
    }
}

//定义一个上下文类
class Content
{
    //定义一个变量用来挂载类
    public $classMate;

    //构造函数传进来一个类
    public function __construct($ClassMate)
    {
        $this->classMate = $ClassMate;
    }

    public function help()
    {
        $this->classMate->behavior();
    }
}

echo '有一天XXX正在打架!' . PHP_EOL;
//使用小明策略
$xiaoming = new Content(new XiaoMing());
$xiaoming->help();
//使用张三策略
$zhangSan = new Content(new ZhangSan());
$zhangSan->help();
//使用李梅策略
$liMei = new Content(new LiMei());
$liMei->help();

输出

以上的代码会输出


image.png
上一篇下一篇

猜你喜欢

热点阅读