Frequentemente, especialmente nas bibliotecas, os pacotes contêm classes organizadas em torno de um único conceito. Exemplos: xml, sql, user, config, db . Acho que todos sentimos que esses pacotes estão corretos no singular .
com.myproject. xml .Element
com.myproject. sql .Connection
com.myproject. usuário .User
com.myproject. usuário .UserFactory
No entanto, se eu tiver um pacote que realmente contenha uma coleção de implementações de um único tipo - como tarefas, regras, manipuladores, modelos etc. , qual é preferível?
com.myproject. tarefas .TakeOutGarbageTask
com.myproject. tarefas .DoTheDishesTask
com.myproject. tarefas .PaintTheHouseTask
ou
com.myproject. tarefa .TakeOutGarbageTask
com.myproject. tarefa .DoTheDishesTask
com.myproject. tarefa .PaintTheHouseTask
fonte
Respostas:
Use o plural para pacotes com conteúdo homogêneo e o singular para pacotes com conteúdo heterogêneo.
Uma classe é semelhante a uma relação de banco de dados. Uma relação de banco de dados deve ser nomeada no singular, pois seus registros são considerados instâncias da relação. A função de uma relação é compor um registro complexo a partir de dados simples.
Um pacote, por outro lado, não é uma abstração de dados. Ajuda na organização do código e na resolução de conflitos de nomenclatura. Se um pacote é nomeado no singular, isso não significa que cada membro do pacote é uma instância do pacote; contém conceitos relacionados, mas heterogêneos. Se ele for nomeado no plural (como geralmente são ), esperaria que o pacote contenha conceitos homogêneos.
Por exemplo, um tipo deve ser nomeado em
TaskCollection
vez deTasksCollection
, pois é uma coleção que contém instâncias de aTask
. Um pacote nomeadocom.myproject.task
não significa que cada classe contida é uma instância de uma tarefa. Pode haver umTaskHandler
, umTaskFactory
, etc. Um pacote chamadocom.myproject.tasks
, no entanto, deve conter diferentes tipos que são todas as tarefas:TakeOutGarbageTask
,DoTheDishesTask
, etc.fonte
beans
é plural, no entanto,java.beans
contém todas as classes de tipos relacionadas ao JavaBeans.java.beans
.Provavelmente isso depende de um idioma específico. No .NET (C #), definitivamente deve ser um plural se for provável uma colisão de nomes do tipo namespace (o
type name expected but namespace found
erro). Eu lidei com isso, não é agradável e resulta em nomes de tipo superqualificados em todo o código. Exemplo .fonte