4
respostas

Não entendi a pergunta de como tornar isso mais flexível... Como?

Repare que fizemos new GoogleMaps(). Como fazer para que isso seja flexível?

Mapa map = new GoogleMaps();
4 respostas

pelo que eu entendi, você deveria criar uma ponte de adaptação ou em inglês um Bridge Adapter, que seria uma classe que consumiria os métodos da sua classe.

Ramires, obrigado pela sua resposta!

Veja, eu respondi "não sei" no exerício e vi na resposta do professor que um Factory resolveria...

de nada, qualquer coisa estamos aqui.

Quando ele menciona em tornar mais flexível, ele quer dizer que a implementação deve independer de ter que instanciar o GoogleMaps todo vez que for usar o mapa, pois imagine se em diversas partes do programa você usa o mapa, aí em todas você ter de repetir o trecho de código: "Mapa map = new GoogleMaps();", aí em um determinado momento é tomada a decisão em não mais usar o Mapa do Google e sim o do MapLink, o programador terá de sair trocando em todos as partes do programa o new GoogleMaps(). Com uma Factory, você pode encapsular a criação da instancia em uma única classe, sendo que se necessário mudar qual instancia de mapa usar, basta mudar na fábrica.

Por exemplo:

public class MapaFactory {
    public Mapa getMapa() {
        return new GoogleMaps(); //neste momento optou-se utilizar o mapa do Google
    }
}

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