main:
{
ExtensionPrototypeRegistry* registry = new ExtensionPrototypeRegistry();
registry->registerExtension("id.logger",new LoggerExtensionPrototype());
registry->registerExtension("id.launch",new LaunchExtensionPrototype());
clientCode(registry);
}
clientCode:
{
IExtensionPrototype* e1 = registry->createExtension("id.logger");
e1->execute();
..
IExtensionPrototype* en = registry->createExtension("id.logger");
}