Dúvidas com Polimorfismo

3 respostas
L

ei galera é o seguinte, espero que vocês possam me ajudar com esse dúvida facinha. Eu estou querendo usar polimorfismo em entrada e saida de dado em uma aplicação que estou desenvolvendo. Quero criar um interface, e três classes para entrada e saida(que implementam essa interface).

Interface EntradaSaida
{
     public String lerMsg();
     public void exibirMsg();
}
implementações usando: System.out.print, JOptionPane e usando GUI.

mas ai vem a dúvida, pois por exemplo, se quero cadastrar um cliente como faço isso, já que usando a entrada padrão e JOptionPane são praticamente identicas, mas como faria isso usando GUI já que tudo eh diferente.

3 Respostas

hiarlay

Se sua duvida é como receber um dado apartir de um gui, como por exemplo um JTextField, a forma de receber esse dado e armazenar em uma variável, é utilizar o nome da variavel desse campo .getText();
e a forma de tratar é a mesma com o JOptionPane, se for inteiro Integer.parseInt(variavel.getText()); e está resolvido.

Marcio_Duran

Onde esta sua dúvida em Polimorfismo ?

A resposta acima, responde o que você pode usar para receber o parametro, e o sentido de interface ai não esclare a sua intenção ao uso do Polimorfismo, mas sim ao recurso para usar JOptionPane, para o uso da GUI.

victor.godinho

Eae filhote...

Acho que entendi...

É como a sua classe irá buscar a informação, já que existem diversas possibilidades?
Geralmente se faz desse modo:

Cria-se uma classe de Factory (isso é um design pattern, caso não saiba recomendo vêr um exemplo, é bem tranquilo...), que poderá ser feito de dois modos:

O "cliente" (classe que quer um valor de entrada) pode chamar o método específico que ele quer (ou passar como parametro algo que indique isso)

Cliente:
....
void fazerXpto() {
    Factory f = Factory.getInstance();
    EntradaSaidaFactory esf = f.getFactory<EntradaSaidaFactory>(EntradaSaidaFactory.class);

    EntradaSaida es = esf.getEntradaSaida(); //Nesse caso a nossa classe de Factory "sabe" internamente de qual classe ele deve retornar uma referência. Seja através de properties/hard code/o escambal.

    EntradaSaida es = es.getEntradaSaida(es.GUI); //Nesse caso o "cliente" (nós) informamos de qual tipo deve ser a classe criada.
}

Uma classe Factory é bemm simples mesmo, caso essa seja a dúvida agora, é só algo como:

public class Factory {
    private static final Factory ME = new Factory();
    protected Factory() {}

    // ....

    // ....

    public static Factory getInstance() {
        return ME;
    }
}

com métodos como:

public EntradaSaida getEntradaSaida() {
   return new EntradaSaidaGUI();
}

Mas enfim, esclareçe melhor a sua dúvida, talvez eu tenha viajado legal, rsrs.

Falows

Criado 1 de setembro de 2008
Ultima resposta 1 de set. de 2008
Respostas 3
Participantes 4