Interface

Pessoal,
Boa tarde!

Estou com dúvida de como implementar interface. Exemplo:

Tenho um Interface que possui os seguintes métodos:
bool Cadastrar();
bool Atualizar();
ListCarregar();
Object Buscar(int id);

E tenho 5 classes que implementam esses métodos, só que dessas 5 classes 2 precisavam implementar outro tipo de busca (uma vai ter busca por status, e a outra uma busca por nome), além da busca por ID já existente. Agora como faço isso utilizando a Interface??

abs,

[quote=dioferrib]Pessoal,
Boa tarde!

Estou com dúvida de como implementar interface. Exemplo:

Tenho um Interface que possui os seguintes métodos:
bool Cadastrar();
bool Atualizar();
ListCarregar();
Object Buscar(int id);

E tenho 5 classes que implementam esses métodos, só que dessas 5 classes 2 precisavam implementar outro tipo de busca (uma vai ter busca por status, e a outra uma busca por nome), além da busca por ID já existente. Agora como faço isso utilizando a Interface??

abs,[/quote]

Estenda esta interface que você já tem com outra, e faça suas duas buscas adicionais implementarem esta “sub-interface”.

[]´s

Por que, ao invés de passar um Int, você não passa um objeto?

Princípio de padrão de projeto: “Encapsule o que varia…”

Então, cria uma classe chamada “CriteriosDeBusca”(por exemplo) , algo assim.

Ai, dentro do seu método você obtém os dados que quiser: nome, por ID, por sexo, qq coisa. Se aparecer um novo critério de busca, você simplesmente adiciona a classe, e a assinatura desse seu método ai continua a mesma:

public object buscar(CriterioDeBusca criterios){ //Implementação. }

Mas, tb ele poderia ter:

public object obterPor(Integer id){ //Implementação. } e/ou:

public object pesquisarPor(object objtFiltro) {
   //Implementação.
}