I\'ve just had an argument with someone I work with and it\'s really bugging me. If you have a class which just has methods like calculateRisk or/and calc
If you make it static, you can't inject a different implementation easily.
There is no longer any runtime cost to calling non-static methods, so for new code avoid static as far as sensible.
OTOH, refactoring tools can replace all calls to a static method fairly easily, so it's not critical one way or another.
I don't know whether the calculation of prices or risks can vary in your domain. If there are different strategies, passing a stateless strategy implementation around may have benefits. But it's more code, and there's a good chance that YAGNI.