25种php设计模式,你全都知道吗?下面用代码介绍访问者模式(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);
其他相关设计模式:
备忘录模式(memento模式) 观察者模式(observer模式) 模板方法模式(template method模式) 命令模式(command模式) 组合模式(composite模式) 享元模式(flyweight模式) 策略模式(strategy模式) 状态模式(state模式) 适配器模式(adapter模式) 工厂模式(factory模式) 原型模式(prototype模式) 外观模式(facade模式) 单例模式(singleton模式) 桥梁模式(bridge模式) 装饰模式(decorator模式) 抽象工厂模式(abstract factory模式) 建造者模式(builder模式) 访问者模式(visitor模式) 解释器模式(interpreter模式) 中介者模式(mediator模式) 职责链模式(chain of responsibility模式) 代理模式(proxy模式) 迭代器模式(interator模式) 数据访问对象模式(dao模式) 委托模式(delegation模式)
