2010-08-26 19 views
21

Je souhaite créer une interface pour "Articles". Typiquement, je nommerais une interface en ajoutant un préfixe "I" à un mot de base. Mais dans ce cas, ma parole de base commence déjà avec un I. Voici quelques idées que j'ai euComment nommer une interface lorsque le mot de base commence par un I?

  • iItem: Deux Moi
  • iItem: Variez le cas
  • ItemInterface : Passer le préfixe I et écrire Interface

Ce qui a l'air le meilleur? Quelqu'un d'autre a-t-il rencontré ce problème? Si oui, qu'avez-vous fait?

+7

Haha, cela m'a toujours dérangé aussi. Content de savoir que je ne suis pas le seul;) –

+1

@Dan Tao: Bien sûr, cela vous dérange. Vous êtes un ingénieur. :) –

Répondre

27

Bien que difficile à lire, IItem serait conforme à certaines interfaces "II" existantes:

+0

J'avais du mal à trouver des exemples aussi rapides, mais je n'ai pas réussi ... :-) –

+0

@Stefan: merci, c'était amusant de chercher! :) –

+0

Merci IItem il est alors –

7

simplement IItem. Il n'y a pas besoin d'exception.

Les interfaces commencent par deux lettres majuscules (I [A-Z]), qui les identifient comme une interface. Donc, Item n'est pas une interface, mais IItem est.

3

Modifier 12/08/2016: Je initialement fourni cette réponse comme une perspective alternative sur les conventions de nommage. Mon C# de jour en jour utilise maintenant I -prefixing pour garder les choses idiomatiques et pour réduire le fardeau cognitif grâce à la cohérence. Je pense que la cohérence est plus importante que les questions que je soulève ci-dessous. En bref, le bâton avec les conventions de la base de code que vous travaillez.


Juste Item. Non parce que l'interface commence par I, mais plutôt parce que le préfixage de classes avec des lettres d'identification n'est pas nécessaire. Décorer des interfaces avec I est aussi laid que de gifler C avant vos noms de classes concrètes (à la MFC). Préfixer des types avec n'importe quoi est aussi mauvais que d'utiliser la notation hongroise.

Vous pourriez prétendre que cela vous donne réellement une valeur sémantique, mais je ne suis pas convaincu. J'ai un IDE moderne et je n'ai pas besoin que mes noms de types soient plus complexes.

+3

Donc le postfixage avec le nom complet est meilleur qu'un préfixe d'une lettre? –

+0

@Esteban Araya: Désolé, je ne suis pas sûr de comprendre ce que vous dites. Si vous voulez dire utiliser des langages dynamiques, eh bien, c'est un firewar complètement différent :) –

+10

Désolé, -1 de moi, la convention dans le framework .net est pour que les interfaces soient préfixées avec "I". Ne pas le faire crée du code qui n'est pas compréhensible par quiconque n'est pas vous qui a besoin de maintenir votre base de code à l'avenir. Aimez-le ou détestez-le, la cohérence est roi =) – Rob

2

Conformément à la convention de dénomination .Net Le nom de l'interface doit être précédé de la lettre majuscule «I» suivie du nom de l'interface dans le cas Camel.

Je vous suggère de nommer Point d'interface:

IItem 

pas nécessaire de mentionner « Interface » à la fin parce que la lettre « I » au début lui-même dit qu'il est l'interface, pas besoin mentionner explicitement.