观察者模式:
require_once("guanchazhe.php");
class BorderDecorator extends Widget{
private $widget;
function __construct(Widget $widget){
$this->widget=$widget;
}
public function draw(){
echo "
echo "
";$this->widget->draw();
echo "
";}
public function update(Observable $subject){
$this->widget->update($subject);
}
}
$widgetA=new BorderDecorator($widget);
$widgetA->draw();
?>
widget类的改写:
//观察者
interface Observer{
public function update(Observable $subject);
}
abstract class Widget implements Observer{
private $subject;
abstract public function draw();
public function update(Observable $subject){
$this->subject=$subject;
}
public function getSubject(){
return $this->subject;
}
}
class BasicWidget extends Widget{
function __construct(){
}
public function draw(){
$html="
$html.="
" ."Instrument Info
";$data=$this->getSubject()->getData();
$numRecords=count($data[0]);
for($i=0;$i
$instms=$data[0];
$prices=$data[1];
$years=$data[2];
$html.="
$instms[$i]$prices[$i]$years[$i]";}
$html.="
";
echo $html;
}
}