Ho alcune operazioni per fare molti più elementi simili. Vorrei raccogliere i dati da ciascun elemento prima e dopo legare tutti i dati a un oggetto (l'associazione è un'operazione costosa quindi devo farlo una sola volta).
È coerente con il pattern Visitor?
Esempio del mio problema:
class Element {
public $name;
public function accept(VisitorInterface $visitor) {
$visitor->visitElement($this);
}
}
class SimpleVisitor implements VisitorInterface {
private $data = [];
public function visitElement(Element $element) {
$this->data[] = $element->name;
}
public function bindData(Object $object) {
$object->setNames($this->data);
}
}
$visitor = new SimpleVisitor();
$object = new Object();
$elementA = new Element();
$elementA->name = 'test1';
$elementA->accept($visitor);
$elementB = new Element();
$elementB->name = 'test2';
$elementB->accept($visitor);
$visitor->bindData($object);