Tenho o seguinte cenário:
Preciso consultar diversos termos no Google, mas como ele detecta quando um robô faz isso, utilizo diversos serviços de proxy.
No construtor da minha classe BuscaResultadosGoogle, recebo um objeto que implementa a interface GoogleProxy, que tem um método getHttpService($url), que me retorna um HttpService configurado com o que o proxy precisa (alguns proxies precisam de mais parâmetros, outros de menos...).
O código é o seguinte:
public function __construct($palavraChave, GoogleProxy $proxy = null)
{
if (is_null($proxy)) $proxy = new SemProxy();
$palavraChave = preg_replace('/\s/', '+', $palavraChave);
$url = "http://www.google.com.br/search?q=$palavraChave&num=100&cr=countryBR";
$this->http = $proxy->getHttpService($url);
}
Quando recebo um objeto que pode realizar uma função sem que eu saiba qual é, evitando assim diversos ifs ou cases de um switch, o padrão é o Strategy. E quando tenho um método que cria um objeto complexo, o padrão é o Factory Method. No meu caso, tenho os dois. Sendo assim, os dois padrões estão sendo aplicados corretamente?
Abraços e obrigado.