I know this has been asked so many times (Actually, a lot!), but I still can't manage to fully understand what is the main difference between these two.
I am aware a service returns a singleton instance of the function provided, and that a factory will simply invoke this function and return its value.
But...
As I see it, you can do and achieve the same effects using one or another, so how should I choose which one to use? Why should I choose services over factories, or the other way around?
Is there a situation where one can do something that the other cannot?