当前位置:Gxlcms > PHP教程 > 18php访问者模式

18php访问者模式

时间:2021-07-01 10:21:17 帮助过:31人阅读

本文参看php 设计模式 之 访问者模式.

visitVip($this);
    }
}

class NormalUser extends User
{
    //同上的getPoint()具体实现就由接口中实现了

   //同VipUser类中的accept
    public function accept(UserVisitor $vitor)
    {
        $vitor->visitNormal($this);
    }
}

//定义访问者接口
abstract class UserVisitor
{
    //访问者必须要实现的访问不同用户的接口方法
    abstract function visitVip(User $user);
    abstract function visitNormal(User $user);
}

//积分操作的访问者实现
class PointActVisitor extends UserVisitor
{
    public function visitVip(User $user)
    {
        echo 'Vip用户+10分 
'; } public function visitNormal(User $user) { echo 'Normal用户+5分
'; } } //用户的树形结构 class Users { protected $users; public function addUser(User $user) { $this->users[] = $user; } //让所有的用户都能被访问者访问 public function handleVisitor(UserVisitor $visitor) { foreach($this->users as $user) { $user->accept($visitor); } } } $pointVisitor = new PointActVisitor(); $users = new Users(); $users->addUser(new VipUser()); //添加新用户 $users->addUser(new NormalUser()); $users->addUser(new NormalUser()); $users->handleVisitor($pointVisitor);

以上就介绍了18php访问者模式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

人气教程排行