数码资讯
PHP设计模式访问者模式
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
复制代码代码如下所示:
< PHP
*访问者模式
*
*表示对对象结构中的元素起作用的操作,并且可以在不改变每个元素的类的情况下对这些元素定义新的操作。
*
* /
抽象类的访客
{
摘要公共功能visitcroncreteelementa($元);
摘要公共功能visitcroncreteelementb($元);
}
类concretevisitor1延伸游客
{
公共功能visitcroncreteelementa($元)
{
回声get_class($元)。访问1a;
}
公共功能visitcroncreteelementb($元)
{
回声get_class($元)。访问1b;
}
}
类concretevisitor2延伸游客
{
公共功能visitcroncreteelementa($元)
{
回声get_class($元)。访问2a;
}
公共功能visitcroncreteelementb($元)
{
回声get_class($元)。访问2b;
}
}
抽象类的元素
{
抽象公共函数接受(访问者);
}
类concreteelementa延伸元
{
公共功能接受(访问者)
{
访客- > visitcroncreteelementa美元(美元);
}
}
类concreteelementb延伸元
{
公共功能接受(访问者)
{
访客- > visitcroncreteelementb美元(美元);
}
}
类的构造
{
私人_elements美元=阵();
公共功能附加($元素)
{
美元-> _elements { } = $元;
}
公共功能分离($元素)
{
如果($键= array_search($元,美元-> _elements)!= = false)撤消(美元-> _elements { $关键});
}
公共功能接受(访问者)
{
foreach(美元-> _elements达元)
{
$元素>接受(访问者);
}
}
}
objos美元=新的构造();
objos美元->附加(新concreteelementa());
objos美元->附加(新concreteelementb());
objcv1美元=新concretevisitor1();
objcv2美元=新concretevisitor2();
objos ->接受美元(美元objcv1);
objos ->接受美元(美元objcv2);
< PHP
*访问者模式
*
*表示对对象结构中的元素起作用的操作,并且可以在不改变每个元素的类的情况下对这些元素定义新的操作。
*
* /
抽象类的访客
{
摘要公共功能visitcroncreteelementa($元);
摘要公共功能visitcroncreteelementb($元);
}
类concretevisitor1延伸游客
{
公共功能visitcroncreteelementa($元)
{
回声get_class($元)。访问1a;
}
公共功能visitcroncreteelementb($元)
{
回声get_class($元)。访问1b;
}
}
类concretevisitor2延伸游客
{
公共功能visitcroncreteelementa($元)
{
回声get_class($元)。访问2a;
}
公共功能visitcroncreteelementb($元)
{
回声get_class($元)。访问2b;
}
}
抽象类的元素
{
抽象公共函数接受(访问者);
}
类concreteelementa延伸元
{
公共功能接受(访问者)
{
访客- > visitcroncreteelementa美元(美元);
}
}
类concreteelementb延伸元
{
公共功能接受(访问者)
{
访客- > visitcroncreteelementb美元(美元);
}
}
类的构造
{
私人_elements美元=阵();
公共功能附加($元素)
{
美元-> _elements { } = $元;
}
公共功能分离($元素)
{
如果($键= array_search($元,美元-> _elements)!= = false)撤消(美元-> _elements { $关键});
}
公共功能接受(访问者)
{
foreach(美元-> _elements达元)
{
$元素>接受(访问者);
}
}
}
objos美元=新的构造();
objos美元->附加(新concreteelementa());
objos美元->附加(新concreteelementb());
objcv1美元=新concretevisitor1();
objcv2美元=新concretevisitor2();
objos ->接受美元(美元objcv1);
objos ->接受美元(美元objcv2);
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。