Реализация паттерна Chain of Responsibility на php. Как улучшить код?
Пытаюсь хорошо реализовать регистрацию в системе, решил использовать паттерн CoR. Дошёл до того момента, когда надо делать цепочку классов обработчиков. Результат по мне неказистый. Есть ли более изящные способы описать этот код?
abstract class AbstractChainHandler implements ChainHandlerInterface
{
protected $next;
public function setNext(ChainHandlerInterface $handler)
{
$this->next = $handler;
}
$handlers = [
Handler1::class,
Handler2::class,
Handler3::class,
];
public function init(array $handlers)
{
$result = $iterator = new $handlers[0]();
foreach ($handlers as $handler) {
$h = new $handler();
$iterator->setNext();
$iterator = $h;
}
return $result;
}
}