What names do you find yourself prepending/appendi

2019-01-29 19:08发布

问题:

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.

回答1:

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


回答2:

I use Provider and Helper a lot.



回答3:

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



回答4:

Util

  • EnumUtil
  • ParseUtil
  • StringUtil
  • etc ...


回答5:

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



回答6:

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

Examples:

  • TaxCalc
  • TipCalc
  • DateCalc


回答7:

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.



回答8:

Factory

Also:

Provider


回答9:

  • Factory
  • Helper
  • Utils
  • Job
  • Entity


回答10:

Tests for unit test classes



回答11:

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


回答12:

I am often using :

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


回答13:

why of course...

Base

works both sides.

;-)



回答14:

Controller and View.