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�
 

Responder a