Estrutura de Interfaces

0 respostas
F

Dae,

Tenho uma aplicação em 3 camadas.

Defini uma interface com os seguintes metodos:

public interface Facade {
    public void excluir(Object obj) throws DAOException;
    public void salvar(Object obj) throws DAOException;
    public Object salvarRetornarCopia(Object obj) throws DAOException;
    public Object get(Integer codigo) throws DAOException;
    public List getListagem() throws DAOException;
}

Esta serve pra todas as classes de persistência.

Daí estendo uma interface que contem metodos específicos de uma classe:

public interface CidadeFacade extends Facade {
    public List findOrderByDescricao() throws DAOException;
    public List findOrderByEstado() throws DAOException;
}

Pra parte de DAO tá legal.

Acontece que os meus beans tem os getters e setters + os metodos de classe:

public class Cidade implements Serializable {

    private Integer codigo;
    private String descricao;
    private Estado estado;
    private Regiao regiao;

    public Cidade() {
        this.codigo = null;
    }

    ... //getters e setters

    //Metodos comuns a todos os Beans
    public [b]static[/b] void excluir(Object obj) throws DAOException { ... }
    .
    .//Omiti a implementação dos metodos para simplificar a visualização
    .
    public [b]static[/b] List getListagem() throws DAOException{ ... }

    //Metodos exclusivos da região
    public [b]static[/b] List findOrderByDescricao() throws DAOException { ... }
    public [b]static[/b] List findOrderByEstado() throws DAOException{ ... }
}

Problema:

Como viram os metodos de classe do Bean são os mesmos definidos pela interface RegiaoFacade, mas, tem a particularidade de serem estaticos.

Objetivo:

List list = Cidade.findOrderByDescricao();

Cidade = Cidade.get(new Integer(5));

Desta forma gostaria de saber se seria uma boa prática criar interfaces iguais as do DAO. Lembrando que seria mais fácil usar uma estrutura apenas de interfaces que poderia ser implementadas de camada de DAO e Business Object evitando repetição e facilitando a inclusão de metodos novos…

Aceito sugesões para mudança na estrutura de interfaces/implementação.

Criado 12 de maio de 2004
Respostas 0
Participantes 1