Olá estou fazendo um diagrama de classes e nele possui uma classe abstrata pessoa e classes concretas aluno e professor que herdam de pessoa, so que eu criei uma interface de operacoes com metodos abstratos adicionar, excluir, pesquisar. E gostaria de saber como que represento a implementacao dessa interface na classe Pessoa
Eis um exemplo para a situação que você colocou.
Valeu alexandre, obrigado pela ajuda e se eu quiser por exemplo usar uma classe existente na api do java tipo a classe Date, eu faço uma associação normal
aproveitando o topico, nao entendo qual a vantagem de se utilizar interface nesse caso … alguem poderia me explicar!??
Uma vantagem é facilitar nos testes. Na hora de fazer testes unitários com alguma classe que use esses métodos de IPessoa você pode usar um Mock pra simular a execução dos métodos sem precisar conhecer a implementação da interface.
[]'s
Rodrigo C. A.
como faço testes unitários com alguma classe no eclipse?
[quote=rafaelgomes12]aproveitando o topico, nao entendo qual a vantagem de se utilizar interface nesse caso … alguem poderia me explicar!??
[/quote]
Obrigar todos que implementem essa interface tenham os respectivos métodos, sempre que possível, prefira sempre usar interface do que herança.
agora fiquei realmente curioso hehehe …
pq utilizar interface e nao herança!? pq uma é melhor que a outra!?
[…]s
[quote=rafaelgomes12]
pq utilizar interface e nao herança!? pq uma é melhor que a outra!?[/quote]
Boa leitura!
obrigadoo!!
[quote=Luiz Aguiar][quote=rafaelgomes12]
pq utilizar interface e nao herança!? pq uma é melhor que a outra!?[/quote]
Boa leitura! [/quote]
Bom, o tópico é bem antigo, eventualmente, me perdoem os moderadores.
Porém, acho que a pergunta feita (em se utilizar interface e não herança) merece ser respondida:
Na interface, eu OBRIGO a implementação de todos os métodos! Assim, usando interface, não corro o risco de esquecer de implementar algum.
Enquanto que na herança não tenho essa obrigação!
E caso não consiga imaginar uma situação onde seja interessante eu usar interface, vou antecipar uma abaixo. Apesar de quando vc for programar seguindo padrões como MVC, elas vão aparecer naturalmente …
Segue um exemplo:
Para manter os usuário em um sistema, eu tenho vários métodos: entre eles: incluir, alterar e remover.
Aí, tenho uma classe lógica (que vai validar os dados, e as regras), que irá implementar estes métodos, e tenho também uma classe que fará a comunicação com o banco de dados. Logo, ambas as classes implementam vários métodos em comum. E isso é importante, para que minha classe que faz o dialogo com o banco de dados trabalhe apenas com dados já validados, pela classe lógica. Entende ?
Assim, a interface me ajuda, pois serei lembrado de implementar todos os métodos necessários nas duas classes (uma vez que estão definidos na interface). OK?
Isso tudo sem mencionar que representar esta situação em um diagrama UML fica bem mais fácil e nada redundante (métodos).
Bom, espero ter ajudado, e me corrijam diante de alguma besteira!
=)
Abraços !!