Object orientation has brought about a radical shift in our notion of software development. The basic mechanisms of object-oriented programming, encapsulation and inheritance, have clear advantages when it comes to data-hiding and incremental development.
Additional keywords and phrases:
generic types, assertions, canonical classes,
event-driven computation
First we will look at some examples in Java,
illustrating the use of inheritance and delegation
for the realization of some simple idioms and patterns.
Then, we will briefly deal with polymorphism in C++,
including the use of assertions that may be used to enforce
contractual obligations.
After discussing some of the idioms and patterns
that have been employed in the hush framework,
we will look more closely at the catalogue of design patterns
introduced in