Classes nomeando: singular ou plural? [fechadas]

52

É sempre difícil escolher entre formas singulares e plurais para nomes de classes:

CustomerRepository vs. CustomersRepository
CustomerService vs. CustomersService
CustomerController vs. CustomersController

E para nomes compostos é ainda mais difícil:

OrderCustomerRepository vs. OrderCustomersRepository vs. OrdersCustomersRepository

Qual abordagem você prefere e por quê?

    
por SiberianGuy 25.08.2011 / 23:35
fonte

4 respostas

67

A única coisa que eu pluralize é coleções.

foreach (var customer in customers)
{
    // do something with customer
}

Todos os seus exemplos são objetos individuais, portanto eles não são pluralizados. Sim, os nomes se referem a objetos que podem ter várias instâncias, mas tudo que você precisa saber no nome é a entidade do objeto (por exemplo, cliente).

Assim, em todos os seus exemplos, o singular é a forma correta. Torna a vida muito mais fácil.

    
por 25.08.2011 / 23:41
fonte
56

Use singular. A ferramenta para girar os parafusos é chamada "chave de fenda" e não "chave de parafusos".

No entanto, pluralize seus nomes de método e propriedade de acordo, para indicar se um valor ou uma coleção deles será retornado.

    
por 28.08.2011 / 13:32
fonte
5

Definitivamente singular. Você não cria um objeto de People , você cria uma coleção de Person objetos. A única vez que usaria plurais seria para classes estáticas, ou seja, SupportServices , StringUtils , etc. No entanto, neste caso, a classe age mais como um namespace do que qualquer outra coisa.

    
por 26.08.2011 / 06:18
fonte
0

Lembre-se de que uma classe é um modelo para um objeto. Então, pense sobre o objeto ao qual você está se referindo.

Geralmente, é uma entidade singular, especialmente quando é uma entidade ORM. Às vezes pode ser uma coleção.

Eu acredito que a resposta é específica para o contexto.

    
por 26.08.2011 / 07:18
fonte