以下代码(摘自葡萄牙语http://br.phptherightway.com/pages/Design-Patterns.html中的以下页面)显示了策略的使用。 我的问题是如果没有定义,ArrayOutput的load()方法如何才能返回$ arrayOfData?
interface OutputInterface{
public function load();
}
class ArrayOutput implements OutputInterface{
public function load() {
return $arrayOfData;
}
}
class SomeClient{
private $output;
public function setOutput(OutputInterface $outputType){
$this->output = $outputType;
}
public function loadOutput(){
return $this->output->load();
}
}
$client = new SomeClient();
// Array
$client->setOutput(new ArrayOutput());
$data = $client->loadOutput();
答案 0 :(得分:1)
请查看以下代码
CArray <SomeClass, SomeClass &> collection;
答案 1 :(得分:1)
它不能。那段代码看起来更像是为了让您了解如何实现该模式。它应该是这样的:
interface OutputInterface {
public function load();
}
class ArrayOutput implements OutputInterface {
private $arrayOfData;
function __construct($array) {
$this->arrayOfData = $array;
}
public function load() {
return $this->arrayOfData;
}
}