107 votes

Convention de dénomination des classes C# : S'agit-il de BaseClass, ClassBase ou AbstractClass ?

Quelle est l'approche recommandée pour nommer les classes de base ? Faut-il préfixer le nom du type avec " Base " ou " Résumé "ou devrions-nous simplement le suffixer par "Base" ?

Considérez ce qui suit :

type : ViewModel par exemple MainViewModel , ReportViewModel

classe de base : BaseViewModel ou ViewModelBase ou AbstractViewModel

Pensez aussi à :

type : Product par exemple Produit virtuel , ExpirantProduit

classe de base : BaseProduct ou ProductBase ou AbstractProduct

Lequel est le plus standard, selon vous ?

class Entity : EntityBase
{
}

ou

class Entity : BaseEntity
{
}

84voto

Joe Points 60749

Il y a des exemples dans le cadre avec le suffixe Base, par ex. System.Configuration.Provider.ProviderBase , System.Web.SessionState.SessionStateStoreProviderBase .

Cependant, toutes les classes de base abstraites du Framework ne suivent pas cette convention (par exemple, les classes de base abstraites de l'API). System.Data.Common.DbParameter , System.Data.Common.DbCommand ).

Personnellement, j'éviterais d'utiliser le suffixe sauf si Je voulais insister sur le fait qu'il s'agit d'une classe abstraite et j'ai pensé que les autres utilisateurs de la classe pourraient s'attendre à ce que le nom indique une implémentation concrète.

44voto

Paul Sonier Points 25528

Aucune de ces réponses. Réfléchissez à l'utilité de votre classe de base et donnez-lui ce nom. Par exemple, la classe de base d'Automobile et de Bicyclette pourrait être Véhicule.

Si vous créez des classes de base uniquement pour avoir une classe de base d'une classe, sans autre but ou raison, vous faites probablement quelque chose de mal.

4voto

Yes - that Jake. Points 9184

Si vous parlez de classes de base virtuelles, la norme de Microsoft est ClassnameBase (comme CollectionBase).

4voto

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 d'opter pour BaseClassname car de cette façon, vous pouvez TOUJOURS trouver quelles classes de base vous pouvez commencer à utiliser en tapant simplement Base et en obtenant le reste de l'aide d'Intellisense. Que faire si vous avez 20 classes de base et que vous avez ajouté Base comme suffixe et que vous avez oublié le nom de la classe de base ? Voulez-vous créer un diagramme de classes d'abord à partir de VS et découvrir quelles classes de base sont disponibles ? C'est bien de les nommer ClassBase quand il s'agit d'une ou deux classes.

Il en va de même pour la décision entre la fonction GetItems et ItemsGet. Je dirais que, pour des raisons de lisibilité au moins, il faut opter pour GetItems. Suivez les conventions :)

2voto

Gary.Ray Points 4042

Nous utilisons BaseEntity, mais je pense que c'est votre propre préférence. Je vois fréquemment l'autre.

Soyez simplement cohérent dans votre contexte, qu'il s'agisse de votre projet, de votre espace de noms ou, si possible, de votre équipe. Des conventions différentes sont pires qu'une mauvaise convention, à mon avis.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X