Dúvida Nomenclaturas Java

Boa tarde pessoal, trabalhei um pouco com Java há aproximadamente 2 anos e desde então tenho trabalhado com .NET (não me crucifiquem!).
Recentemente voltei para um projeto JAVA em Swing e estou com algumas dúvidas, sobre boas práticas em Java:

Em .NET usamos os sufixos BEs, DHs, BOs e DAOs. Além do “I” para indicar que a classe em questão é uma interface. Exemplos:

  • ProdutoBE (mapeamento do banco);
  • ProdutoDH (data holder - extende o ProdutoBE e adiciona mais algumas propriedades, por exemplo informaçãoes para auditoria);
  • IProduto (interface do produto);
  • ProdutoBO (classe de negócio);
  • IProdutoDAO (interface para o DAO);
  • ProdutoDAO (DAO de produtos).

Eu dei uma pesquisada rápida e verifiquei que em Java temos os VOs, DTOs, Impls, etc… Quais são adequados para o meu exemplo?

[]s

Basicamente no Java: Classes e interfaces com a PrimeiraLetraDeCadaPalavraEmMaiusculo, métodos e variáveis com a segundaLetraDeCadaPalavraEmMaiusculo e constantes com a PALAVRATODAEMMAIUSCULO

E quanto aos sufixos e prefixos, costumam utilizar?

Sufixos são bastante usados (como DAO).
Quanto a prefixos (notação húngara) não se usam, exceto, obviamente, quando você tem elementos de interface de usuário que correspondem a um determinado campo.
Por exemplo, se você tem uma classe que representa um Usuário, a classe GUI que mapeia a entrada de dados a essa classe Usuário provavelmente vai ter campos com nomes “txtNomeUsuario” ou “cboEstadoCivil”. Por exemplo, o WindowBuilder tenta fazer exatamente isso quando sugere um nome de campo.

Quais são os sufixos mais conhecidos em java?

lmorelato,

Dá uma olhada aqui, principalmente em Lexical Structure.

Sufixos bastante utilizados: DAO, Service, Validator, Controller. Alguns padrões também são feitos, por exemplo, colocar o mesmo nome do Mapping do Controller (pelo menos no Spring) com o mesmo nome do diretório que estão as views.

Por exemplo:

@RequestMapping(value = "/user") public class User { ...}
E o nome do diretório que estão as jsp´s, dentro do WEB-INF ficaria user.