objectFactory = $objectFactory; $this->logger = $logger; $this->init(); } /** * @return string */ abstract protected function init(); /** * @return string */ protected function getResultObjectInterface() { return $this->resultObjectInterface; } /** * @return SearchResultInterface */ public function make() { return $this->objectFactory->create($this->getResultObjectInterface(), ['queryBuilder' => $this]); } }