<?php
interface classDao{
public function eat();
}
class Classone implements classDao{
public function eat(){
echo "one 吃东西";
}
}
class Classtwo implements classDao{
public function eat(){
echo 'two 吃东西';
}
}
class ClassoneDelegator{
private $objarr = array();
public function addObj($obj){
$this->objarr[] = $obj;
}
public function __call($name,$args){
foreach($this->objarr as $obj){
$Class = new ReflectionClass($obj);
if($method = $Class->getMethod($name)){
if($method->isPublic() && !$method->isAbstract()){
$method->invoke($obj,$args);
}
}
}
}
}
$classoneDelegator = new ClassoneDelegator();
$classoneDelegator->addObj(new Classone());
$classoneDelegator->addObj(new Classtwo());
$classoneDelegator->eat();
利用php反射机制实现动态代理模式
最新推荐文章于 2024-03-07 15:27:11 发布