首页 > 代码库 > [php学习]策略模式

[php学习]策略模式

实现三种策略:

<?phpinterface 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;    }}

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

<?phpclass 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 = http://www.mamicode.com/$client->loadOutput();>

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

[php学习]策略模式