2009-08-12 5 views
7

OK, il est donc facile de nommer une interface (ou classe pour cette question) si vous pouvez facilement penser un nom: l'utilisateur, la fenêtre, Base de données, flux, etc.Interface de nommage pour les adjectifs

Qu'en est-il un adjectif ou concept adjectif? par exemple. quelque chose qui a un horodatage (HasTimestamp, Timestamped, Timestampable ...?) ou quelque chose qui est suivi ou regardé (Trackable, IsTracked, Watchable, IsWatched ...?)

Répondre

7

J'ai tendance à utiliser le suffixe -able. Il existe de nombreux exemples de cette convention de nommage aussi dans la bibliothèque Java, tels que:

Par exemple quelque chose qui a balises serait nommé Taggable en vertu de cette convention de nommage, quelque chose qui a un horodatage est Loggablesince:

Horodatage sont généralement utilisés pour l'enregistrement des événements, auquel cas chaque événement dans un journal est marqué avec un horodatage. Dans les systèmes de fichiers, l'horodatage peut signifier la date/heure de création ou de modification d'un fichier.

+0

Bien que je suive aussi généralement ce modèle, "capable" ne correspond pas toujours parfaitement à certains plus complexes - par exemple, IDeterminesEmptyValue. Peut être ICanDetermineEmptyValue. IEmptyValueDeterminable n'a pas autant de sens. –

+0

J'aime votre raisonnement général, mais "Loggable" est un mot trop éloigné de l'horodateur à mon goût. –

+0

@Jason: Je dois admettre que Loggable est un peu * forcé * comme nom :-) – dfa

0

C'est une bonne question. J'essaie de nommer toutes mes interfaces et classes en utilisant des noms. Donc, je finirais probablement par des noms comme ITrackingTarget, IObservee. L'horodatage est intéressant. Peut-être ITimestamp lui-même? En utilisant le modèle Visiteur, comment appelleriez-vous l'interface qui désigne un objet qui accepte un IVisitor?

+0

VisitableObject? VisitorUser? – neuro

0

J'ai tendance à utiliser des noms aussi.

Pour un objet qui peut être ouvert/fermé, vous pouvez toujours utiliser le bavard OpenableObject ou OpenableInterface: Vous finissez avec un nom, même si composé.

Comme il est bavard (et un peu bête) J'ai tendance à utiliser Openable au lieu de OpenableObject. J'utilise OpenableInterface si je veux mettre l'accent sur le fait qu'il s'agit d'une interface.

Pour les objets qui utilisent le modèle d'inversion des dépendances que j'utilise parfois le suffixe « Utilisateur »: ImageUser, LoggerUser, ServiceXUser, ...

Il est préférable d'utiliser les noms, mais je préfère la clarté sur le strict respect du règle.

Questions connexes