Quelle est l'approche recommandée pour nommer les classes de base? Préfixe-t-il le nom du type avec "Base" ou "Abstract" ou le suffixerait-il simplement avec "Base"?
Considérer ce qui suit:
tapez: ViewModel
par exemple MainViewModel , ReportViewModel
classe de base: BaseViewModel
ou ViewModelBase
ou AbstractViewModel
Considérez également:
tapez: Product
par exemple VirtualProduct , ExpiringProduct
classe de base: BaseProduct
ou ProductBase
ou AbstractProduct
Selon vous, lequel est le plus standard?
class Entity : EntityBase
{
}
ou
class Entity : BaseEntity
{
}
Il y a des exemples dans le Framework avec le suffixe de base, par ex. System.Configuration.Provider.ProviderBase
, System.Web.SessionState.SessionStateStoreProviderBase
.
Mais en aucun cas toutes les classes de base abstraites du Framework ne suivent cette convention (par exemple System.Data.Common.DbParameter
, System.Data.Common.DbCommand
).
Personnellement, j'éviterais d'utiliser le suffixe sauf Je voulais souligner le fait qu'il s'agit d'une classe abstraite et je pensais que sinon les utilisateurs de la classe pourraient s'attendre à ce que le nom indique une implémentation concrète.
Aucune de ces réponses. Réfléchissez à l'objectif de votre classe de base; nommez ça. Par exemple, la classe de base de l'automobile et du vélo pourrait être le véhicule.
Si vous créez des classes de base juste pour avoir une classe de base d'une classe, et sans autre but ou raison que cela, vous faites probablement quelque chose de mal.
Je pense que c'est une question de choix. Je dirais que si vous créez beaucoup de classes de base, il est peut-être préférable de toujours utiliser BaseClassname car de cette façon, vous pouvez TOUJOURS découvrir quelles classes de base vous pouvez commencer à utiliser en tapant simplement Base et en obtenant le reste de l'aide à partir de Intellisense. Et si vous aviez 20 classes Base et que vous aviez ajouté Base comme suffixe et que vous aviez oublié quel était le nom de la classe Base? Voulez-vous d'abord créer un diagramme de classes à partir de VS et découvrir quelles classes de base sont disponibles? C'est bien de les nommer ClassBase quand il ne s'agit que d'une ou deux classes.
Il en va de même pour la décision entre GetItems et la fonction ItemsGet. Je dirais pour des raisons de lisibilité au moins - optez pour GetItems. Suivez les conventions :)
Si vous parlez de classes de base virtuelles, le standard de Microsoft est ClassnameBase (comme CollectionBase.)
Nous utilisons BaseEntity, mais je pense que c'est votre préférence. Je vois souvent l'autre.
Soyez juste cohérent dans votre contexte, que ce soit votre projet, votre espace de noms ou si possible, votre équipe. Différentes conventions sont pires qu'une mauvaise convention à mon humble avis.
Personnellement, je recommanderais de ne pas ajouter du tout la base Word. Vous ne savez jamais quand vous devrez changer le code et ce ne sera plus l'objet de base. Cela étant dit, nous l'avons fait dans le passé, nous avons préfixé la base Word sur le devant. Il semble mieux couler.