I do not know the internal elements of EE, but, as a rule, the difference between a static class and Singleton is an instantiation - with a static class there is no actual instance, no element data, no object reference. So the practical difference ... not much.
I think the real benefit here is conceptual ... static methods and properties are methods that apply to the abstract concept of a class, and not to a specific instance. If you create a single-user user object here, who is this user? Why does it have a specific context for creating and updating profiles? I do not think the concept looks very good.
I am much more comfortable saying UserProfile.Update (username, password, firstName ...). You say: "Perform the task" Upgrade from the abstract concept of UserProfile on this particular dataset. "
Keep in mind that my use of the abstract word is strictly figurative, and not in the sense of the computer science of the word.
Chris B. Behrens
source share