访问者模式 php,18php访问者模式

本文参看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教程有兴趣的朋友有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值