gpt4 book ai didi

php设计模式 Visitor 访问者模式

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 29 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php设计模式 Visitor 访问者模式由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

代码如下

<?php  /**  * 访问者模式  *  * 表示一个作用于某对象结构中的各元素的操作,可以在不改变各元素的类的前提下定义作用于这些元素的新操作  *  */  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),

最后此篇关于php设计模式 Visitor 访问者模式的文章就讲到这里了,如果你想了解更多关于php设计模式 Visitor 访问者模式的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com