标签: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