Difference between Singleton vs Static

person shubham sharmafolder_openImprovise Adapt Overcomelocal_offer, access_time August 1, 2019

1) The static class provides better performance than the Singleton pattern because static methods are bonded on compile time.

2) One more difference between Singleton and static is the ability to override. Since static methods in Java cannot be overridden, they lead to inflexibility. On the other hand, you can override methods defined in Singleton class by extending it.

3) Static classes are hard to mock and consequently hard to test than Singletons, which are pretty easy to mock and thus easy to test. It’s easier to write JUnit test for Singleton than static classes because you can pass mock object whenever Singleton is expected, e.g. into the constructor or as method arguments.

4) If your requirements need to maintain state than Singleton pattern is a better choice than static class, because

maintaining state in later case is a nightmare and leads to subtle bugs.

5) Singleton classes can be lazy-loaded if it is a heavy object, but the static class doesn’t have such advantages and always eagerly loaded.

 

Example of singleton class in swift

Call singleton object

 

warningComments are closed.