Jump to content

Java - Interfaces?


skcratch

Recommended Posts

Viva!

Pelo que percebi, as interfaces permitem declarar um conjunto de métodos que depois terão que ser implementados nas classes que implementam as interfaces.

Em alguns casos, essa "associação" classe-interface parece-me óbvia mas continuo sem perceber em que situações devo optar por interfaces e quais são as vantagens dessa mesma utilização.

Grato desde já pela ajuda,

Cumps!

😉

Link to comment
Share on other sites

À uns tempos atrás li um artigo sobre OO em que o autor dizia que POO deve ser orientada a interfaces, ou seja devemos usar o mais possível interfaces de forma a ter uma maior abstracção dos dados e a facilitar possíveis modificações e adições.

Não é algo que se se possa dizer que se usa aqui e ali é algo geral e que dependendo da situação pode ou não ser usado.

Eu normalmente utilizado em JavaBeans ou semelhantes e uso em classes que embora façam determinado serviço de forma diferente o seu resultado do processo é o mesmo.

I haven’t lost my mind; it’s backed up on DVD somewhere!

Link to comment
Share on other sites

Viva!

A minha dificuldade é em identificar qual "o momento em que devo usar interfaces".

No exemplo típico das figuras (a classe base Figura nunca é instanciada tendo como classes derivadas a classe Quadrado, Triângulo, ...) devo usar interfaces, isto é, mesmo nas situações mais simples ou, pelo contrário, só devem ser aplicadas em situações mais complexas, em que não sabemos de antemão a totalidade das funcionalidades de todas as classes da nossa aplicação?

Grato desde já pela ajuda,

Cumps!

😉

Link to comment
Share on other sites

Eu vejo Interfaces mais como a definição de um "protocolo" que as classes têm para comunicar entre si.

Se dizes que uma classe implementa uma dada interface, estás a dizer que a classe "responde" a certos pedidos. Ou seja, ao definires uma estruturação de interfaces estás a definir todo os processos de interacção entre as classes. Permitindo-te uma maior abstracção, focalizando na lógica do que estás a processar e não nos objectos que estás a usar para fazer a lógica.

Segundo o exemplo que deste das figuras geométricas. Podes ter perfeitamente a interface FiguraGeometrica, em que defines os métodos Area e Perimetro. E se nas tuas figuras todas (Quadrado, Triângulo, Circulo, etc) implementares a interface, se depois estiveres a processar um conjunto de figuras não te interessa saber com que figura exactamente estás a trabalhar, só precisas de saber que é uma figura geométrica e que com tal podes saber a Area e o Perimetro (ou outros métodos que aches úteis e definas na interface), fazendo com que te focalizes apenas na lógica do problema que estás a resolver e não nos objectos em si. É transparente...

"Give a man a fish and he will eat for a day; Teach a man to fish and he will eat for a lifetime. The moral? READ THE MANUAL !"

Sign on a computer system consultant's desk

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.