码迷,mamicode.com
首页 > Web开发 > 详细

[php学习]策略模式

时间:2014-10-09 15:15:03      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:blog   io   使用   ar   java   div   on   cti   log   

实现三种策略:

<?php

interface OutputInterface
{
    public function load();
}

class SerializedArrayOutput implements OutputInterface
{
    public function load()
    {
        return serialize($arrayOfData);
    }
}

class JsonStringOutput implements OutputInterface
{
    public function load()
    {
        return json_encode($arrayOfData);
    }
}

class ArrayOutput implements OutputInterface
{
    public function load()
    {
        return $arrayOfData;
    }
}

设立呼叫中介调用不同策略实现:

<?php

class SomeClient
{
    private $output;

    public function setOutput(OutputInterface $outputType)
    {
        $this->output = $outputType;
    }

    public function loadOutput()
    {
        return $this->output->load();
    }
}

客户端调用:

<?php

$client = new SomeClient();

// Want an array?
$client->setOutput(new ArrayOutput());
$data = $client->loadOutput();

// Want some JSON?
$client->setOutput(new JsonStringOutput());
$data = $client->loadOutput();

由于设计模式在高级语言中的通用,理解和使用上C#,java,Php等的实现没有差别,可能需要注意的就是不同语言的编程范式。

[php学习]策略模式

标签:blog   io   使用   ar   java   div   on   cti   log   

原文地址:http://www.cnblogs.com/xiguain/p/4013016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!