catzIn the video below, I am overriding one method from one project, with another method from a completely different project. None of my projects knows anything about the other project. This is the very definition of encapsulation.

The way this works, is that instead of invoking my method directly, I am invoking it indirectly as an Active Event, and when you invoke an Active Event, you invoke it as a “string”. So my invocation code becomes like this;

appContext.Raise ("some-active-event");

This feature of Active Events, makes it possible to implement polymorphism during run-time, and dynamically linking together my projects at run-time. This trait, just so happens to be the defining feature of a “plugin architecture”, and necessary to facilitate for loosely coupled modules, to be orchestrated together, without creating dependencies.

Or with other words; Creating apps like LEGO!