You are writing a class so that instances of the class keep state. You put this state in the class because all the state in the class is connected. You have a function to manage this state so that you cannot set invalid state permutations (a notorious square that has the width and height of an element, but if the width doesn't equal the height, it's not a square.)
If you have no state, you do not need a class, you can just use free functions (or in Java, static functions).
So the question is not, should I have one function? but rather, "what state object does my class encapsulate?"
Perhaps you have one function that sets the whole state - and you should make it more granular, so that, for example, instead of void Rectangle::setWidthAndHeight( int x, int y) you should have setWidth and a separate setHeight .
Perhaps you have a ctor that sets things up, and one function that doesIt , no matter what it is. Then you have a functor, and one doIt may make sense. For example, class Add implements Operation { Add( int howmuch); Operand doIt(Operand rhs);} class Add implements Operation { Add( int howmuch); Operand doIt(Operand rhs);}
(But then you may find that you really want something like a visitor pattern - a cleaner functor is more likely if you have objects with a pure value, a visitor if they are located in a tree and connected to each other.)
Even if these are many small objects, a single function is the right level of detail, you might want something like a facade pattern to make up of primitive operations, often used complex operations.
No answer. If you really have a bunch of functors, that's cool. If you really make every free function a class, this is stupid.
The real answer lies in the answer to the question: "What state do I control, and how well do my classes model my problem area?"