最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php設(shè)計模式 Visitor 訪問者模式

 更新時間:2011年06月28日 20:57:17   作者:  
表示一個作用于某對象結(jié)構(gòu)中的各元素的操作,可以在不改變各元素的類的前提下定義作用于這些元素的新操作

復(fù)制代碼 代碼如下:

<?php
/**
* 訪問者模式
*
* 表示一個作用于某對象結(jié)構(gòu)中的各元素的操作,可以在不改變各元素的類的前提下定義作用于這些元素的新操作
*
*/
abstract class Visitor
{
abstract public function visitCroncreteElementA($element);
abstract public function visitCroncreteElementB($element);
}
class ConcreteVisitor1 extends Visitor
{
public function visitCroncreteElementA($element)
{
echo get_class($element)." visit 1A<br/>";
}
public function visitCroncreteElementB($element)
{
echo get_class($element)." visit 1B<br/>";
}
}
class ConcreteVisitor2 extends Visitor
{
public function visitCroncreteElementA($element)
{
echo get_class($element)." visit 2A<br/>";
}
public function visitCroncreteElementB($element)
{
echo get_class($element)." visit 2B<br/>";
}
}
abstract class Element
{
abstract public function accept($visitor);
}
class ConcreteElementA extends Element
{
public function accept($visitor)
{
$visitor->visitCroncreteElementA($this);
}
}
class ConcreteElementB extends Element
{
public function accept($visitor)
{
$visitor->visitCroncreteElementB($this);
}
}
class ObjectStructure
{
private $_elements = array();
public function attach($element)
{
$this->_elements[] = $element;
}
public function detach($element)
{
if($key = array_search($element,$this->_elements) !== false) unset($this->_elements[$key]);
}
public function accept($visitor)
{
foreach($this->_elements as $element)
{
$element->accept($visitor);
}
}
}
//
$objOS = new ObjectStructure();
$objOS->attach(new ConcreteElementA());
$objOS->attach(new ConcreteElementB());
$objCV1 = new ConcreteVisitor1();
$objCV2 = new ConcreteVisitor2();
$objOS->accept($objCV1);
$objOS->accept($objCV2);

相關(guān)文章

最新評論

新安县| 淅川县| 江山市| 加查县| 浑源县| 南漳县| 镇远县| 柯坪县| 桑植县| 北宁市| 奉贤区| 七台河市| 石景山区| 南岸区| 上饶县| 师宗县| 威海市| 射洪县| 浦东新区| 昆明市| 柳林县| 耿马| 金平| 平舆县| 类乌齐县| 巴东县| 阿鲁科尔沁旗| 泰宁县| 宝兴县| 林口县| 综艺| 射阳县| 定日县| 张掖市| 门头沟区| 崇左市| 普兰县| 齐齐哈尔市| 西华县| 云南省| 武义县|