Which nouns do you find yourself putting regularly at the end of your classes?
For example, I have a habit of sticking Info
onto classes that pass information around but don't do a great deal:
Or for Coordinating classes:
UserManager
SecurityManager
I end up using Builder
quite often for string related classes, even if it barely does any building:
TemplateBuilder
HtmlBuilder
And of course the timeless Helper/Utility class:
PhraseHelper
NumberUtility
FileHelper
Have you got any good, by which I mean concise and descriptive, nouns or words you regularly use to denote the class' main role?
This question is aimed at the .NET world, but can extend to Java, C++, Python and so on.
You can take a look at source-code-wordle.de, I have analyzed there the most frequently used suffixes of class names of the .NET framework and some other libraries.
The top 20 are:
- attribute
- type
- helper
- collection
- converter
- handler
- info
- provider
- exception
- service
- element
- manager
- node
- option
- factory
- context
- item
- designer
- base
- editor
I use Provider and Helper a lot.
I append pattern name at the end if i follow one (i.e. FooRepository).
Trying to avoid -Helper, -Manager, -Utils.
Base, Reader, Writer, Manager, File.. some others.
If my class is specifically doing calculations, I will prepend Calc
Examples:
I find myself sometimes appending the name of the parent class the one I'm writing I want to inherit. Sometimes it sounds weird especially with an Animal example (DogAnimal, FishAnimal, ...) but it makes finding subtypes easier in a list of classes.
Tests
for unit test classes
On occasion I use
Target
As in
- UploadTarget
- ProcessingTarget
I don't think I had before Silverlight / WPF but I now also use
Converter
As in:
- CurrentTimeDisplayConverter
- TimeDeltaConverter