Dúvida sobre Reutilização de Código

3 respostas
felipegmc

Olá!
Tenho a seguinte questão uma questão sobre reutiização de código.

Criei uma classe chamada Hierarquia:

public class Hierarquia {

    private int idHierarquia;
    private String nomeHierarquia;
    private String descHierarquia;

    public Hierarquia() {
    }

    //Getters e Setters...

Depois, criei uma classe CadastroHierarquia, que faz o um acesso no banco, monta uma um ArrayList de Hierarquias, e também possui métodos para pegar o próximo item e o anterior:

public class CadastroHierarquia {
    
    Hierarquia hie = new Hierarquia();
    Acesso a = new Acesso();
    ArrayList <Hierarquia> listHie = new ArrayList<Hierarquia>();
    ListIterator <Hierarquia> i;

    public Hierarquia pesquisaHierarquia(Hierarquia pesqHie) {
        listHie.clear();
        listHie = a.select(pesqHie);
        i = listHie.listIterator();
        hie = i.next();
        return hie;
    }
    
    public Hierarquia proximo(){
        if (i.hasNext()){
            hie = i.next();
            return hie;           
        } else {
            return null;
        }
    }
    
    public Hierarquia anterior(){
        if (i.hasPrevious()){
            return i.previous();
           
        } else {
            return null;
        }
    }

}

O que eu queria saber é se tem como eu reaproveitar essas rotinas da classe CadastroHierarquia para outras classes. Por exemplo, eu crio uma classe Funcionário, que precisa das mesmas rotinas de manipulação de ArrayList que a classe Hierarquia. Eu teria que criar uma nova classe, ou teria algum jeito de reimplementá-la?
Pensei em usar herança ou interface, mas não consegui chegar a nehuma conclusão.

Obrigado!!!
:wink:

3 Respostas

joede.fadel

como está essa classe você não vai conseguir reaproveitar

felipegmc

Mas para essa rotina de manipulação de lista, tem alguma maneira de torná-la reutilizável?

rmendes08

Simples! Da mesma maneira que ArrayList é uma classe genérica, você também pode criar a sua classe genérica:

public class Cadastro<T>{
   Acesso a = new Acesso();
   ArrayList<T> list = new ArrayList<T>;
   ListIterator<T> i;

   public T pesquisa( T pesq ){ 
      //....
   }

   public T proximo(){
      //...
   }

   //e por aí vai ...
}
Criado 13 de setembro de 2008
Ultima resposta 13 de set. de 2008
Respostas 3
Participantes 3