1. A method, comprising: loading a main code segment, the main code segment including a first interface class containing a stub implementation for at least one interface, the first interface class including a static member having a modifiable implementation pointer; instantiating the stub implementation for the at least one interface to provide a stub implementation object; setting the modifiable implementation pointer of the static member of the first interface class to point to the stub implementation object; loading a dynamic library, the dynamic library including a second interface class containing a real implementation of the at least one interface; instantiating the real implementation of the at least one interface to provide a real implementation object; and setting the modifiable implementation pointer of the static member of the first interface class to point to the real implementation object; wherein the first interface class is a first enhanced singleton interface class and the second interface class is a second enhanced singleton class; wherein the first enhanced singleton interface class comprises a first abstract C++ singleton interface class and the second enhanced singleton interface class comprises a second abstract C++ singleton interface class, wherein a first constructor associated with the main code segment is configured to set the modifiable implementation pointer of the static member of the first interface class to point to the stub implementation object, and a second constructor associated with the dynamic library is configured to set the modifiable implementation pointer of the static member of the first interface class to point to the real implementation object; wherein the stub implementation comprises a first array of pointers, and the real implementation comprises a second array of pointers.