Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a class that is a singleton and off of the singleton are properties that hold the instances of all the performance counters in my application.

public interface IPerformanceCounters
        IPerformanceCounter AccountServiceCallRate { get; }
        IPerformanceCounter AccountServiceCallDuration { get; }

Above is an incomplete snippet of the interface for the class "PerformanceCounters" that is the singleton.

I really don't like the plural part of the name and thought about changing it to "PerformanceCounterCollection" but stopped because it really isn't a collection. I also thought about "PerformanceCounterFactory" but it is really a factory either. After failing with these two names and a couple more that aren't worth mentioning I thought that I might be missing a pattern.

Is there a name that make sense or a change that I could make towards a standardized pattern that would help me put some polish on this object and get rid of the plural name?

I understand that I might be splitting hairs here but that is why I thought that the "Programmers" exchange was the place for this kind of thing. If it is not... I am sorry and I will not make that mistake again.


share|improve this question
up vote 1 down vote accepted

The term IPerformanceCounterSource could work, referring to a class that is a source of performance counters.

So long as the term is clear, you shouldn't have an issue. While ~Collection or ~Set is gramatically correct, they could be confused for classes that take the form of ICollection.

share|improve this answer
Given that it is, in some sense, a set then it is probably worth considering if an actual set would be a better implementation – jk. Dec 11 '12 at 8:51
Though given that in this case performance is probably key probably not. – jk. Dec 11 '12 at 9:08

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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