问题
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
.
来源:https://stackoverflow.com/questions/1194403/what-names-do-you-find-yourself-prepending-appending-to-classes-regularly