views:

260

answers:

13

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:

  • ImportInfo
  • SiteInfo

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.

+2  A: 

Util

  • EnumUtil
  • ParseUtil
  • StringUtil
  • etc ...
JaredPar
+5  A: 

I use Provider and Helper a lot.

Chris Lively
+1  A: 

If my class is specifically doing calculations, I will prepend Calc

Examples:

  • TaxCalc
  • TipCalc
  • DateCalc
Matthew Jones
A: 

why of course...

Base

works both sides.

;-)

icelava
+1  A: 
Factory

Also:

Provider
AlbertoPL
+1  A: 
  • Factory
  • Helper
  • Utils
  • Job
  • Entity
Charlie
A: 

Controller and View.

Robert S.
+1  A: 

Tests for unit test classes

Charlie
+3  A: 

Base, Reader, Writer, Manager, File.. some others.

David Anderson
Yes, Base I use quite often.
RichardOD
+3  A: 

I append pattern name at the end if i follow one (i.e. FooRepository).
Trying to avoid -Helper, -Manager, -Utils.

Arnis L.
+1: those 'Helper' and 'Manager' names usually imply that you're wrapping up a procedural system and pretending it's object-oriented. There's nothing wrong with the procedural approach but if you want the benefits of object orientation then the objects should perform their own behaviour for the most part.
Kylotan
+1 for saying you shuold avoid Helper, Manager, etc.
rmeador
What's procedural about the word Manager? Helper I can understand, and Util and Tools, but Manager seems like it lends itself to being an object.
Chris S
+1  A: 

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
David in Dakota
+1  A: 

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.

Chet
LabradorDogCanineCarnivoreMammalVertebrateAnimalEukaryote, that sort of thing? ;-)
Steve Jessop
Although I joke, I actually don't think this is a bad idea, since in practice it's quite common to have 2-level hierarchies. WindowsThingy, LinuxThingy, MacOSThingy; LoopbackWotsit, NetworkWotsit, SerialWotsit; MysqlAdaptor, SqlserverAdaptor, SqliteAdaptor.
Steve Jessop
haha, yeah, I usually stop at two. Most inheritance beyond that is from the API.
Chet
+1  A: 

I am often using :

  • Protocol (Specific protocol implementation)
  • Manager (Class managing the process)
  • Emulator (Emulate something...)
Matthieu