大话设计模式-迭代器模式

//Iterator迭代器抽象类
abstract class Iterators {
	//用于定义得到开始对象、得到下一个对象、判断是否到结尾、当前对象等抽象方法,统一接口
	public abstract function first();
	public abstract function next();
	public abstract function isDone();
	public abstract function currentItem();
}

class ConcreteIterator extends Iterators {
	private $aggregate;
	private $current = 0;

	function __construct($aggregate) {
		$this->aggregate = $aggregate;
	}

	public function first() {
		return $this->aggregate[0];
	}

	public function next() {
		$this->current++;
		return $this->current < count($this->aggregate) ? $this->aggregate[$this->current] : null;
	}

	public function isDone() {
		return $this->current >= count($this->aggregate) ? true : false;
	}

	public function currentItem() {
		return $this->aggregate[$this->current];
	}
}

$a[0] = '大鸟';
$a[1] = '小菜';
$a[2] = '行李';
$a[3] = '老外';
$a[4] = '公交内部员工';
$a[5] = '小偷';
//声明迭代器对象
$i = new ConcreteIterator($a);
$item = $i->first();
while(!$i->isDone()) {
	echo $i->currentItem().'请买车票<br/>';
	$i->next();
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值