Wzorce projektowe – Iterator
Założenie: Stworzymy prosty przykład iteratora w PHP, który pozwoli iterować po kolekcji obiektów bez konieczności znajomości jej wewnętrznej implementacji.
Krok po kroku:
- Krok 1: Tworzenie interfejsu Iteratora. Definiujemy interfejs
MyIterator
, który określa metody wymagane przez iterator. - Krok 2: Implementacja iteratora. Tworzymy klasę
MyCollection
, która implementuje interfejsMyIterator
i przechowuje kolekcję danych. - Krok 3: Użycie iteratora. Tworzymy instancję
MyCollection
i iterujemy po niej za pomocą pętliforeach
.
interface MyIterator {
public function current();
public function key();
public function next();
public function rewind();
public function valid();
}
class MyCollection implements MyIterator {
private $items = [];
private $position = 0;
public function __construct(array $items) {
$this->items = $items;
}
public function current() {
return $this->items[$this->position];
}
public function key() {
return $this->position;
}
public function next() {
$this->position++;
}
public function rewind() {
$this->position = 0;
}
public function valid() {
return isset($this->items[$this->position]);
}
}
$collection = new MyCollection(['apple', 'banana', 'cherry']);
foreach ($collection as $item) {
echo $item . "
";
}
Ten przykład demonstruje podstawowe zasady wzorca projektowego Iterator w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z bardziej zaawansowanymi przykładami.