- What is the Adapter pattern?
Adapter is a very general pattern that modifies an interface of a class or a function (or a template, in C++) so it can be used in a context that requires a different interface but similar underlying behavior.
- What is the Decorator pattern and how does it differ from the Adapter pattern?
The Decorator pattern is a more narrow pattern; it modifies the existing interface by adding or removing behavior, but does not convert an interface into a completely different one.
- The classic OOP implementation of the Decorator pattern is usually not recommended in C++. Why not?
In the classic OOP implementation, both the decorated class and the Decorator class inherit from a common base class. This has two limitations; the most important one is that the decorated object preserves the polymorphic behavior of the decorated class but cannot preserve...