Interface Padra de Projeto

[Avatar]

Membro desde: 28/11/2007 11:36:18
Mensagens: 2
Localização: Porto Alegre
Online

[b]
Olá Pessoal Javiano…
Tenho uma duvida sobre interfaces para padrão de projetos Java…
Tenho um pacote onde coloco todos as minhas classe referentes a Layouts.
Tenho outro pacote onde coloco uma interface com alguns metodos definidos.
E num 3º pacote coloco uma classe implementando a interface…ok??
Entaum nessa classe eu insiro todos os metodos definido na interface…
Tipo…
Tenho 4 metodos, de inclusão,alteração,consultas e exclusoes de dados no banco…
E minha duvida e saber se isso está certo…
Tipo…
Ter em apenas uma classe todos os metodos de uma determinada interface…
ok?

T+!!!

Teoricamente está correto, você pode trabalhar com interfaces de formas diferentes, ex:

public interface Teste {

void metodoImportante();

void metodoNaoImportante();

}

:arrow: Você pode ter uma classe concreta que implementa a interface:


public class TesteImpl implements Teste {

public void metodoImportante() { 
//implementação
}

void metodoNaoImportante() {
//implementação
}

}

:arrow: Você pode ter uma classe abstrata que implementa nenhum, um ou todos os métodos… essa abordagem é útil quando você quer centralizar um comportamento comum, ou seja, em vez de todos escreverem o mesmo metodo, fica tudo na classe abstrata. Essa abordagem é uma padrão de projetos chamado Template Method


public abstract class BaseTeste implements Teste {

public void metodoImportante() { 
//só implemento este, as subclasses deverão implementar o outro, e também poderão redefinir este se quiserem.
}

}

:arrow: E você também pode utilizar um Adapter, que é outro padrão de projeto e funciona da seguinte maneira: se você tem uma interface com determinados métodos, mas alguns deles não tem muita utilidade pra algumas das classes que implementariam a interface, você pode fazer uma classe concreta com implementações vazias ou muito básicas dos métodos da interface, para evitar que todas as classes que implementam a interface tenha q implementar esse método sem precisar dele, ex:


public abstract class TesteAdapter implements Teste {

public void metodoImportante() { }

public void metodoNaoImportante() { }

}

Agora a classe que precisar implementar a interface, pode extender o adapter e só redefinir os métodos que precisar…

Fiz esses códigos aí de cabeça, sem compilar, foi mais pra te passar a idéia do negócio mesmo. Existem outras formas, mas estas acho que são as básicas…

[]´s