Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde...

18

Transcript of Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde...

Page 1: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária
Page 2: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

• Imagine uma grande equipe de desenvolvimento de software, onde hásubdivisões de acordo com a parte que o software irá atuar, logo, é necessáriauma espécie de contrato para garantir “independência” entre as equipes.

• Assim, saberão o que deverão fazer sem que saibam exatamente como estásendo implementado pela outra equipe.

Page 3: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

• Vamos imaginar que fabricamos softwares para serem implantados embrinquedos como:– Robôs,

– Carrinhos e

– Aviões

• Esses brinquedos possuem como característica principal a capacidade de selocomoverem segundo os comandos de um controle remoto;

• Cada brinquedo entende o que precisa fazer para mover-se para frente ou paratrás, parar e emitir um sinal de localização.

Page 4: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

• Os brinquedos são fabricados por uma companhia e os controles por umaempresa parceira em produção de eletrônicos;

• Ambos são implementados na linguagem Java;

• O contrato estabelecido entre os desenvolvedores é de que todos os produtosque necessitam ser controlados por um controle remoto deverão implementar ainterface Mobilidade, cujo código é apresentado no próximo slide.

Page 5: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

public interface Mobilidade {

public void andarFrente();public void andarTras();public void parar();public void andarDireita();public void andarEsquerda();

}

Page 6: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

• De um lado, as classes que representam os produtos a serem controlados irão“inscrever-se” ou declarar-se implementadoras dessa interface.

• De outro lado, a classe controle remoto irá operar sobre esses métodos semconhecer nada além do que ela precisa saber, ou seja, o conjunto de métodos dainterface mobilidade.

• Por isso, chamados de interface, ou modo de ver os objetos.

• Vejamos a classe Robô que implementa a interface Mobilidade

Page 7: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

public class Robo implements Mobilidade {

public void andarFrente () {System.out.println(“[robô] : andando pra frente...”);

}

public void andarTras () {System.out.println(“[robô] : andando pra tras...”);

}

public void parar() {System.out.println(“[robô] : parado”);

}

Page 8: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACEpublic void virarDireita(int graus) {

System.out.println(“[robô] : virando pra direita...”);}

public void virarEsquerda(int graus) {System.out.println(“[robô] : virando pra esquerda...”);

}

public void moverBracoDireito() {System.out.println(“[robô] : movendo braço direito...”);

}

public void moverBracoEsquerdo() {System.out.println(“[robô] : movendo braço esquerdo...”);

}}

Page 9: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

• Veja que a classe Robô se define implementadora da interface Mobilidadeatravés da palavra reservada implements, seguida do nome da interfaceMobilidade.

• Outros métodos podem ser definidos livremente pelas classes que implementaminterfaces.

• O que vemos na definição dos métodos moveBracoDireito() emoveBracoEsquerdo(), por exemplo, são típicos de funções de um robô, mas quecertamente não se aplicaria a um veículo de brinquedo.

Page 10: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

• Observaremos os slides a seguir, que apresentam a classe Trator, que tambémimplementa a interface Mobilidade.

• Assim como a classe Robô, a classe Trator implementa a interface Mobilidade edeclara outro método chamado de ergueEscavadeira(), que representa umafuncionalidade extra e que não será controlada remotamente.

Page 11: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

public class Trator implements Mobilidade {

public void andarFrente () {System.out.println(“[trator] : andando pra frente...”);

}

public void andarTras () {System.out.println(“[trator] : andando pra tras...”);

}

public void parar() {System.out.println(“[trator] : parado”);

}

Page 12: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

public void virarDireita(int graus) {System.out.println(“[trator] : virando pra direita...”);

}

public void virarEsquerda(int graus) {System.out.println(“[trator] : virando pra esquerda...”);

}

public void ergueEscavadeira() {System.out.println(“[trator] : ergueEscavadeira”);

}}

Page 13: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

• Assim, como o método moveBracoDireito() da classe Robô, o métodoergueEscavadeira() da classe Trator faz uma atividade específica para obrinquedo.

• E, por isso, só é definido no próprio brinquedo.

• Por fim, temos a classe ControleRemoto que realiza operações sobre objetos“Móveis” que implementam a interface Mobilidade:

Page 14: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

public class controleRemoto {public void moverObjetoPraFrente (Mobilidade obj) {

obj.andarFrente();}

public void moverObjetoPraTras (Mobilidade obj) {obj.andarTras();

}

public void dobrarADireita(inr graus, Mobilidade obj) {obj.virarDireita();

}

public void dobrarADireita(inr graus, Mobilidade obj) {obj.virarEsquerda();

}}

Page 15: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE

• Observe que a classe ControleRemoto possui métodos que operam sobreobjetos de classes que implementam a interface Mobilidade, sejam eles quaisforem;

• Por isso, na declaração dos métodos, não está explícito classes como Trator ouRobô, pois o controle trata-os de forma transparente;

• Esse exemplo também representa uma das formas de polimorfismo.

Page 16: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE - Resumo

Hoje nós vimos também como definir contratos entre classes, através deinterface. Cada interface apenas declara assinaturas de métodos, nãooferecendo implementações. As classes que implementam a interface éque são obrigadas a oferecer uma implementação para cada um dosmétodos declarados na interface.

Page 17: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

INTERFACE - Atividade

• Para praticar os conceitos aprendidos, crie uma classe com um método main()que teste a classe controle remoto, através da criação de objetos da classe Tratore Robô e veja como são tratados de forma idêntica pela classe ControleRemoto.

Page 18: Apresentação do PowerPoint · •Imagine uma grande equipe de desenvolvimento de software, onde há subdivisões de acordo com a parte que o software irá atuar, logo, é necessária

That's all Folks