标签: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等的实现没有差别,可能需要注意的就是不同语言的编程范式。
标签:blog io 使用 ar java div on cti log
原文地址:http://www.cnblogs.com/xiguain/p/4013016.html