Classe Anonima dentro de Classe Anornima

5 respostas
aajjbb

Ola,

estou tendo um problema, o qual, no momento, a solução que me parece mais plausivel, e criar, ja dentro de um tratamento de evento, o que ja é uma classe anonima. criar outra classe anonima, ha meu ver, parece prejudicar um pouco a legibilidade, mas, seria algo tao grave assim. algum de voce ja utilizaram esta mesma abordagem em algum projeto ?

5 Respostas

nel

aajjbb:
Ola,

estou tendo um problema, o qual, no momento, a solução que me parece mais plausivel, e criar, ja dentro de um tratamento de evento, o que ja é uma classe anonima. criar outra classe anonima, ha meu ver, parece prejudicar um pouco a legibilidade, mas, seria algo tao grave assim. algum de voce ja utilizaram esta mesma abordagem em algum projeto ?

Oi!

Já tive casos em que criei uma classe Anonima, mas encapsular uma dentro de outra?
Nunca tive um cenário, até o momento, em que julguei necessário tal implementação.

Você tem certeza que quer/precisa fazer isso?
Qual a necessidade que ocorreu que fez com o que pensasse nesse cenário?!

Abraços.

aajjbb

entao, dentro de uma classe anonima em que tratei um evento de botao, criei outra, para “pintar” a forma que queria na tela. mas pensei melhor, e fiz um metodo o qual retorna, um novo objeto ‘Drawable’ o que resolvel o meu problema. pelomenos por enquanto…

e que estou trabalhando com o window builder, e ele me deu essa ‘sugestao’ e eu fiquei na duvida se é uma ‘boa pratica’ ou nao;

rmendes08

IMHO, é uma péssima prática, além da pouco legibilidade, se eu não me engano, aninhar classes gera um overhead no processamento (não tenho certeza, precisaria testar). Particularmente, eu evito criar mais de um nível de aninhamento com classes, sejam elas anônimas ou não. Eu acho o jeito que o Netbeans resolve isso. Quando você usa o construtor de interface e cria um evento, ele cria um método no JFrame, e para tratar o evento, ele cria a classe anônima chamando o método. Particularment, eu gosto dessa abordagem.

aajjbb

é… realmente pensando bem;. achei uma maneira melhor; fiz uma especie de fluent-interface com a classe Rectangle que nesse caso, implementa Drawable… o codigo nao esta aqui comigo, amanha eu posto para mostrar; mas a discussão ainda pode continuar…

na verdade eu nunca gostei de classes internas ou anonimas, nunca me pareceu ser uma boa ideia; mas como ele me ‘sugeriu’ isso, fiquei um pouco tentado, só com eventos mesmo que acho ser a melhor opção… nao vejo vantagem em implementar ActionListener…

discorpio

Boa tarde a todos.

RMendes08, já que voce gosta dessa abordagem, não sei se voce vai concordar comigo ou não, no que tange chamar este conceito de “Classe Anônima”.

Para explicitar melhor, vamos pelo exemplo em que voce tem uma classe com o nome “MeuJFrame” e decide instanciá-la assim:

new MeuJFrame();

Ora, se o nome da classe é conhecido, no caso, “MeuJFrame”, como pode ser ela uma “Classe Anômina” :?: :?: :?:

Isto não é uma incoerência :?: :?: :?:

O que está anônimo no caso é a instância e não a classe, logo, pela lógica, o nome do conceito deveria ser “Instância Anônima” ou “Objeto Anônimo”, e não "Classe Anônima.

A instância só não ficaria anônima se no caso voce fizesse uma instanciação passando-a como parâmetro de um método, pois a variável declarada no método seria o Objeto da classe, como no exemplo “addMouseListener(MouseListener l)” abaixo:

addMouseListener(new MouseListener(){
           .....
           ....
     });

No caso acima, a instância seria “l” declarada lá dentro do método MouseListener.

Sei que isto foge um pouco o foco da questão, porém gostaria não só que RMendes respondesse, mas, todos aqueles que decidirem visitar este post.

Criado 30 de junho de 2011
Ultima resposta 30 de jun. de 2011
Respostas 5
Participantes 4