Elchin Asgarli wrote:Because unless they have an internal state, it is unnecessary to create new function objects every time.
There can be an internal state, though, especially when you're using anonymous inner classes (which is a common way of implementing function objects).
I'd make a distinction between cases when you definitely
should not have more than one instance, and cases where there is no need for more than one. I'd usually only use a Singleton pattern for the former.