• ...Provider
  • ...Searcher
  • ...Resolver
  • ...Builder
  • ...Manager
  • ...Importer
  • ...Descriptor
  • ...Helper
  • ...Indexer

Is it a global convention to refer a thing with "..ers" or "..ors". In contrast, a "thing" that composes with behaviors (habits) or attributes (properties) doesn't go with such naming convention.

It is fun to think that we named the classes based on their behaviors. The "Manager" classes are always resembles my Project Manager.


Because you're writing procedural code in an OO language.

That Xer naming pattern indicates that the class is conceptually something that "does X" rather than something that "is X". Sometimes the former really is what you need, and the "Kingdom of Nouns" article from the comment rightly criticizes that Java forces you to create a class of objects anyway (The closure feature in the upcoming Java 8 should help with this a lot).

But if most of your classes are that way, you're doing something wrong. Look at the list of classes in the Java standard API. There are certainly quite a lot of "ers", but they are a clear minority.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.