In many real time applications, I observe the object creation is in the static method. And all the methods in that class will be non static. And all non static methods is used in the other classes like What is the main advantage of doing this. TO my knowledge we can do this another way also. Just make the name() method as static and use that in another class without creation of object.Realtime application code base looks like this
As the constructor is public singelton advantage is also ruled out.