访问者模式 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教程有興趣的朋友有所幫助。
總結
以上是生活随笔為你收集整理的访问者模式 php,18php访问者模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php中参数传值的三种方法,php cl
- 下一篇: 坦克500爬彼时用什么档?