Interface x Heranca  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

thingol,

Sobre o Fragile base class... acontece só quando é usada a herança ou quando usa interface pode acontecer também? Ou ainda, a interface é a saída pro problema?

Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
Leonardo3001
GUJ Ranger

Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline

thingol wrote:O que eu costumo fazer:
- Prefiro interfaces
- Só uso herança quando estritamente necessário
- Normalmente é melhor fazer o seguinte:

a) Definir uma interface - exemplo: Canideo

b) Definir uma "implementação padrão" para essa interface (uma classe) - exemplo: CanideoImpl. Essa implementação pode ser usada com casca e tudo (sem herança direta). Exemplo:

c) Se precisar criar uma classe que também implemente essa interface (como Raposa), mas que tem algo um pouco diferente, você faz mais ou menos a mesma coisa que fiz para criar a classe Cao:




Thingol, não leve isso pro lado pessoal, mas vou criticar sua proposta.

É o seguinte: nesse tipo de implementação, é melhor usar herança, porque você está lidando com uma relação do tipo especialização/generalização. Eu vejo intefaces como um recurso útil quando as classes possuem uma relação de associação simples, e não se quer uma dependência em tempo de compilação.

E se repararmos bem, as classes Raposa e Cao ficaram esquisitas, pois elas tanto obedecem a um contrato de Canideo quanto possuem uma implementação de Canideo. Se for pra ser assim, melhor herdar uma classe Canideo logo de uma vez, porque aí as subclasses recebem o contrato e a implementação de uma só vez e com código mais bonito.

Veja como fica:

This message was edited 1 time. Last update was at 14/12/2007 07:05:12

[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team