Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Posso considerar que ao criar a classe "NegociacaoService" eu apliquei o design pattern factory?

Ola,

Posso considerar que ao criar a classe "NegociacaoService" que sera especializada em criar um objeto XMLHttpRequest, e realizar uma requição para o servidor, eu apliquei o design patterna "FACTORY"? ou nesse caso não , é apenas considerado um serviço.

Grato.

4 respostas

Boa pergunta Robson. O padrão Factory existe para esconder a complexidade de criação de um objeto. O padrão Builder também, mas esse último lhe dá mais controle no ato de construir o objeto.

Nesse sentido nosso service é um serviço apenas. Tudo bem? Ele não retorna um xmlhttprequest, apenas o encapsula.

Legal entendi flávio , vendo mais alguns vídeos a frente foi criado HttpService, essa sim retorna uma promise com um novo objeto xmlHttpRequest sendo assim, já é considerado um factory ou ainda um serviço ?

class HttpService {

get(url) {

return new Promise((resolve, reject) => {

let xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.onreadystatechange = () => { if(xhr.readyState == 4) { if(xhr.status == 200) { resolve(JSON.parse(xhr.responseText)); } else { console.log(xhr.responseText); reject(xhr.responseText); } } }

xhr.send(); }); } }

PS : Finalizei o curso, parabéns ótima didática, valeu.

solução!

A classe esconde o xmlhttprequest, ela não dá acesso a ele. Continua não sendo Factory. Ela retorna Promises.

Já o ConnectionFactory retorna uma conexão. Ela esconde a complexidade de criá-la e retorna uma instancia de connection, não retorna instancia de outra coisa . Se quiser saber mais pode consultar o livro do GoF de design partern. Factory é um partern de criação.

Se for seguir seu raciocínio quase tudo em OO seria Factory, ou seja, qualquer classe que faça composição, o que não é verdade. Pegou a ideia? Qualquer coisa grite!

Agora pegueei a ideia, valeu

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software