I'm wondering if someone might explain the last paragraph written in this example on Dependency Inversion & Decoupling.http://www.springbyexample.org/examples/core-concepts.htmlFollowing the example code, understanding the reasoning behind decoupling classes by implementing a base class is fine.What I would like some clarification on is the last paragraph:However, there is one problem with this implementation. We dont have a main method. We > definitely need one in order to run our  application, and somewhere in this main method we will need to  instantiate the LocalVoteRecorder.By instantiating the LocalVoteRecorder in our main method, we would  break Rule #1 of Dependency Inversion. We have coded to the  abstraction, we have integrated our changes, but our application would  still have a dependency on a lower level class.Does this mean it is not possible to create a truly decoupled application? How can it be that one could write a 100% decoupled application? Is it even necessary, and are there any best practices I could read up on.Many thanks
Dependency Inversion & Decoupling
design patterns;concepts;dependency management