Oi,
A utilizadade das
interfaces é estabelecer um protocolo básico entre classes, diminuindo o
acoplamento e aumentando a manutenibilidade do sistema.
Vamos imaginar um site de
e-commerce onde será criado um componente Basket (carrinho de compras, sacola,
etc, etc). Este componente precisará manipular objetos do tipo Product e, para
que isso possa ser feito, tal objeto precisaria dos seguintes métodos em sua
interface pública:
- getProductId(),
- getPrice(),
-
getWeight(),
Qual a vantagem de criar
uma interface BasketProduct definindo esta interface?
1. Sem se preocupar com a
Basket, vc poderia mudar a vontade a implementação da sua classe
Product;
2. Sua Basket
poderia manipular diversos tipos de Produto, desde que cada um desses produtos
implemente esta interface. Vc nunca se preocupará com a Basket, apenas em
garantir que sua classe implemente esses métodos. Aí vc diria: Mas isso
eupoderia fazer sem interfaces, apenas usano métodos normais. Sim vc poderia,
mas a questão é que não há garantia nenhuma de que a sua classe Product estaria
correta. Caso vc tivesse adquirido o componente Basket, vc poderia implementar
sua classe Produto sem alguns dos métodos necessários, bugando a solução.
Conclusão: Em linhas
gerais, uma interface é apenas uma boa prática de codificação que simplifica o
entendimento do código, aumenta sua manutenibilidade e minimiza erros
provenientes do uso de hierarquias de classes.
Espero tê-lo ajudado,
André
|
- [java-list] testar Tomcat Daniel A. Melo
- Re: [java-list] testar Tomcat Sven van ´t Veer
- [java-list] duvida iniciante - interface paulo henrique castro
- Re: [java-list] duvida iniciante - inte... Jorge Nascimento
- Re: [java-list] duvida iniciante - ... paulo henrique castro
- Re: RES: [java-list] duvida iniciante -... paulo henrique castro
- André Figueiredo