Ben SPL Yineleyicilerin etrafında başımı almak için çalışıyorum ve bunu işlemek için 2 yollar ile geldim. Ben ilk sürümü daha az karmaşık olması için görmek ama ikinci versiyonu kompozisyon (Bence) hissediyorum vardır.
Ne göremiyorum diğer üzerinden tercih edilir hangisi? Yoksa bu komplike üzerinde sadece ben?
İşte benim düşünceler şunlardır:
Nesne bir yineleyici uygular:
class BoxOfChocolates implements Iterator {
private $id
private $name; // e.g. Valentine's Heart Box
private $maker; // e.g. Hersheys
private $items; // array
public function getChocolates() {
$query = ...
foreach($rows as $row) {
$this->_items[] = new Chocolate() ...
}
}
// ... necessary iterator implementation stuff
}
Nesnesi, bir yineleme-mümkün nesne içerir:
class BoxOfChocolates {
private $id;
private $name;
private $maker;
private $items; // chocolates object
public function getChocolates() {
$this->items = new Chocolates();
$this->items->getChocolates();
}
}
class Chocolates implements Iterator {
private $items;
public function getChocolates() {
$query = ...
foreach($rows as $row) {
$this->_items[] = new Chocolate() ...
}
}
// ... necessary iterator implementation stuff
}