[php学习]策略模式
实现三种策略:
<?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等的实现没有差别,可能需要注意的就是不同语言的编程范式。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。