parser stron www 1mln stron wzorzec Fabryki.
Pytanie czy fabryka konkretnego parsera strony www może zajmować się bezpośrednim ładowaniem proxy ? w sensie jej abstrakcja ma metodę loadProxy() w której ciele wykorzystuje zagregowaną zależność ProxyManager do ładowania konkretnych proxy dla strony.
Tak by to wyglądało:
abstract class AbstractFactory { /** * @var ProxyManager */ private $proxyManager; /** * @var Proxy */ protected $proxy; /** * @param mixed $proxyManager */ public function setProxyManager(ProxyManager $proxyManager) { $this->proxyManager = $proxyManager; } /** * @return mixed */ public function getProxy() { return $this->proxy; } protected function loadProxy($type) { $this->proxy = $this->proxyManager->getFreeAndLock($type); throw new ExceptionFactory('Not found free proxy', ExceptionFactory::NOT_FOUND_FREE_PROXY); } } abstract public function create(AdsSite $adsSite); }
A tu konkretna Fabryka dla konkretnej strony
class Factory extends AbstractFactory { public function create(AdsSite $adsSite) { $this->loadProxy($adsSite->type); $parser = (new Parser($adsSite)) ->setProxy($this->proxy->ip, $this->proxy->port); return $parser; } }