Convention de nommage de classe C #: est-ce une classe de base ou une classe de base ou une classe abstraite?

StackOverflow https://stackoverflow.com/questions/826821

Question

Quelle est l'approche recommandée pour nommer les classes de base? Préfixe-t-il le nom du type avec " Base " ou " Résumé ". ou devrions-nous simplement y ajouter le suffixe "Base"?

Considérez ce qui suit:

tapez: ViewModel par exemple. MainViewModel , ReportViewModel

classe de base: BaseViewModel ou ViewModelBase ou AbstractViewModel

Prenez également en compte:

type: Produit par ex. Produit Virtuel , Produit Expiring

classe de base: BaseProduct ou ProductBase ou AbstractProduct

Selon vous, lequel est le plus standard?

class Entity : EntityBase
{
}

ou

class Entity : BaseEntity
{
}
Était-ce utile?

La solution

Il existe des exemples dans le cadre avec le suffixe de base, par exemple. 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 si je voulais souligner le fait qu’il s’agit d’une classe abstraite et que j’estimais que les utilisateurs de cette classe pourraient s’attendre à ce que le nom indique une implémentation concrète.

Autres conseils

Aucune de ces réponses. Considérez le but que votre classe de base fournit; nomme ça ça. Par exemple, la classe de base de l’automobile et du vélo peut être un véhicule.

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

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

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 vous pourrez ainsi TOUJOURS déterminer quelles classes de base vous pouvez commencer à utiliser en tapant simplement Base et en obtenant le reste de l'aide. Intellisense. Et si vous aviez 20 classes de base et que vous ajoutiez Base en suffixe et que vous oubliez quel était le nom de la classe de base? Voulez-vous d'abord créer un diagramme de classes à partir de VS et connaître les classes de base disponibles? C'est bien de les nommer ClassBase quand il n'y a qu'une ou deux classes.

Idem pour la décision entre les fonctions GetItems et ItemsGet. Je dirais au moins pour des raisons de lisibilité - optez pour GetItems. Suivez les conventions:)

Nous utilisons BaseEntity, mais je pense que vous le souhaitez. Je vois souvent l'autre.

Soyez juste cohérent dans votre contexte, que ce soit votre projet, votre espace de nom ou, si possible, votre équipe. Différentes conventions sont pires qu’une mauvaise convention à mon humble avis.

Personnellement, je recommanderais de ne pas ajouter le mot base. 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 par le passé, nous avons préfixé le mot Base sur le devant. Il semble que ça coule mieux.

BaseEntity ressemble beaucoup à l'affaire camel - strName, bseEntity. Je choisirais EntityBase car il définit d'abord le sujet, ce qui vous aidera à identifier plus rapidement sa fonction.

Pensez toujours à l’alphabétisation lorsque vous nommez des éléments. Je n'aime vraiment pas regarder un serveur SQL et chaque procédure stockée s'appelle usp [quelque chose]. Dans le même ordre d'idées, n'abusez pas de Get et Set comme noms principaux d'une fonction. Au lieu de GetItems ou PlaceOrder, pensez à les nommer en tant que ItemsGet ou OrderPlace.

Donc, en général, ClassnameBase / EntityBase serait un meilleur choix.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top