Java / Spring - interfaces de programação

Índice
Esta é a terceira parte de uma série de tutoriais focados na revisão dos tópicos básicos da linguagem Java para preparar o leitor no uso do Spring Framework. A primeira parte desta série de tutoriais pode ser obtida aqui e a segunda parte pode ser obtida aqui. Neste tutorial falaremos sobre o que são interfaces, o que são interfaces de programação, suas vantagens e como se relacionam com o Spring Framework.
Já vimos os conceitos de herança e polimorfismo e interfaces são um tipo de classe Java que se caracteriza por representar uma funcionalidade particular. Em sua forma mais comum, as interfaces são uma classe composta de métodos sem implementação.
 interface Drawable {public void draw (); public void chooseColor (String color); } 

As interfaces são sempre públicas e abstratas, independentemente de você definir modificadores ou não, e representam a maneira como outros objetos interagem com o objeto que os implementa. Pode parecer complicado, mas é simples, quando uma classe implementa uma interface, ela é forçada a dar um corpo aos métodos correspondentes. Isso significa que, enquanto um objeto implementar uma interface, você pode ter certeza de que esse objeto possui os métodos correspondentes à interface mencionada.
Em Java, as interfaces são implementadas com a palavra-chave "implements" e uma classe pode implementar uma ou mais interfaces, mas é forçada a sobrecarregar os métodos correspondentes a cada interface sem exceção ou o compilador lançará um erro.
 public class Square implementa Drawable {public String borderColor; public String fillcolor; público interno alto; largura interna do público; @Override public void draw () {System.out.println ("Um quadrado é desenhado com largura" + largura + ", altura" + altura + "e cor" + fillcolor); } @Override public void chooseColor (String color) {fillcolor = color; }} 

 public class Line implementa Drawable {public String strokecolor; Long public String; @Override public void draw () {System.out.println ("Desenhe uma linha de" + longo); } @Override public void chooseColor (String color) {strokecolor = color; }} 

Neste caso, a interface permite que você manipule qualquer número de objetos sem problemas usando o conceito de polimorfismo que vimos na segunda parte e esses objetos não precisam estar intrinsecamente relacionados entre si, exceto pela maneira como outras classes interagem com eles. No caso do nosso exemplo, você poderia mais tarde ter objetos pentágono, paisagem ou mesmo ArtWork que implementam a interface Drawable e todos eles poderiam ser manipulados por qualquer classe que possa manipular a interface Drawable.
 import java.awt.Color; import java.util. *; public class DrawThings {// Esta classe gera objetos desenhados aleatoriamente e os desenha em cores aleatórias public static void main (String [] args) {List l = new ArrayList (); para (int i = 0; i0,5) {l.add (nova linha ()); } else {l.add (new Square ()); }} para (Drawable d: l) {float H, S, B; H = (flutuante) Math.random (); S = (flutuante) Math.random (); B = (flutuante) Math.random (); Cor c = Color.getHSBColor (H, S, B); d.chooseColor (String.valueOf (c)); d. desenhar (); }}} 

Como você verá no exemplo, o método principal pode ser separado em 2 métodos principais, o que preenche a Lista de objetos Drawable e o que desenha os objetos da lista. Convido você a usar essas classes e ver como elas se comportam antes de passar para a próxima seção, onde veremos por que você pode querer programar a interface.
No final, uma interface é igual à sua contraparte real, seu teclado e seu mouse são as interfaces com as quais você interage com seu computador, os detalhes internos de como coisas como "Clique" ou "Pressione a tecla Esc" são executados a partir de a interface do seu computador fica oculta e não é necessária para você. A única coisa que importa é que você pode pressionar a tecla Esc e clicar usando essa interface.
Depois de revisar o que é uma interface, espero que você possa entender como pode ser importante programá-la. Essencialmente, você se concentra na criação de seus programas pensando na interface que vai usar e não tanto no objeto que seria passado para você como parâmetro. No caso do exemplo que tratamos até agora, ele pode ser reescrito da seguinte forma:
 import java.awt.Color; import java.util. *; public class DrawThings {// Esta classe gera objetos desenhados aleatoriamente e os desenha em cores aleatórias public static void main (String [] args) {List l = new ArrayList (); fillList (l); drawList (l); } public static void fillList (List l) {for (int i = 0; i0.5) {l.add (new Line ()); } else {l.add (new Square ()); }}} public static void drawList (List l) {for (Drawable d: l) {float H, S, B; H = (flutuante) Math.random (); S = (flutuante) Math.random (); B = (flutuante) Math.random (); Cor c = Color.getHSBColor (H, S, B); d.chooseColor (String.valueOf (c)); d. desenhar (); }}} 

Certamente eu apenas separei as partes do método principal nos 2 métodos filhos, mas a beleza disso é que esses 2 métodos mantêm independência um do outro e mantêm independência das implementações da interface Drawable. Se eu quisesse alterar um dos 2 métodos, o outro não seria afetado em nada, se as implementações do Pentágono e ArtWork aparecessem, você poderia adicioná-los no processo de criação do método fillList (List l) e drawList ( Método List). L) não exigiria nenhuma alteração porque foi programado na interface.
+ ImportanteÉ que ambos os métodos podem pertencer a classes diferentes, eles podem ser manipulados em ambientes diferentes e eles podem até nunca saber que objeto estão realmente manipulando, mas, desde que implementem a interface Drawable, eles serão capazes de manipulá-la e eles o farão. ser capaz de executar os 2 métodos associados a essa interface.
Eu sei que parece terrivelmente complicado no momento, mas mais tarde veremos como o Spring lida com tudo programado para uma interface e veremos como a programação orientada a aspectos e entender isso nos ajudará muito a entender como o Spring funciona.
Espero que continuemos com esses tutoriais semana a semana, não esqueça de deixar seus comentários até a próxima!Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave