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. Ele auxilia 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 for nomeado no plural (como eles muitas vezes < href="http://msdn.microsoft.com/en-us/library/system.collections.aspx"> são ), eu esperaria que o pacote contenha conceitos homogêneos.
Por exemplo, um tipo deve ser denominado TaskCollection
em vez de TasksCollection
, pois é uma coleção que contém instâncias de Task
. Um pacote chamado com.myproject.task
não significa que cada classe contida seja uma instância de uma tarefa. Pode haver um TaskHandler
, um TaskFactory
, etc. Um pacote chamado com.myproject.tasks
, no entanto, conteria tipos diferentes que são todas as tarefas: TakeOutGarbageTask
, DoTheDishesTask
, etc.