[quote=Kenobi][quote=Paulo Silveira]vai ser legal quando implementarem nativamente e tal. pra ter uma puta performance e padronizado.
bem que eh legal ficar gerando bytecode compativel, neh? porque ai funciona em qualquer JVM. eh que nem generics que vai provavelmente conseguir rodar em java < 1.5. pelo menos eles desejam 
a gente ta assistindo a mesma coisa que nossos pais e professores assistiram a 20 anos atras, a mudanca de paradigma. tirem fotos para a posterioridade![/quote]
Realmente Paulo, pois tentei montar um esquema de Log automatizado no meu projeto atual, que usa o WebLogic, além da configuração com o servidor ser árdua, a performance do bichinho não é lá essas coisas, acabou inviabilizando minha implementação.
Costumo pensar em aspectos somente para interesses ortogonais. Esse insight que o CV deu sobre Mix-ins, despertou minha atenção para alguns outros casos, utilizá-lo também em negócios. Mas teríamos que ter nativamente, como você disse. [/quote]
Mix-ins são realmente muito bons Kenobi e ajudam muito, contudo manter longe do negócio e mais perto das necessidades da infra me parece ser uma escolha mais interessante.
Por exemplo:
É comum em paginas que usam Datatables JSF, disponibilizar entidades com um atributo isSelect ou algo parecido, que leem e outros que setam um valor booleano que diz se a linha foi selecionada por um checkbox ou não. Normalmente para tal, insere-se um atributo booleano na Entidade ou cria-se um wrapper para ela. Na primeira um problema é misturar no objeto entidade coisas muito além da modelagem do domínio, como um campo referente a infra da apresentação… e no segundo approach o ruim é que ficar fazendo wrapper sempre que precisar de um conteúdo a ser exibido é um saco. Para isso, fazer “Introduction” de um campo inexistente na modelagem de domínio e um “Mix-in” de uma interface para estas entidades, com implementações de métodos para leitura destes novos campos, torna de maneira única bem simples este serviço para qualquer que seja a entidade. Aspectos de segurança também são bem comuns nesta mesma linha de abordagem.
Contudo, modelar aspectos para o negócio em sí, acho meio perigoso. Os métodos pertinentes ao domínio tem que ser explícitos neste, e não plugados.
Quanto ao que o CV disse, só uma observação, é possível sim sobrescrever métodos. Aliás, para classes que compartilham de mesma estratégia comum para equals e hashCode (projetos onde as igualdades podem ser submissas a IDs, por exemplo), um aspecto pode perfeitamente resolver este crosscuting fazendo as sobrescritas.