Introduction
Get an overview of what we'll learn in this chapter.
We'll cover the following...
We'll cover the following...
In the last two chapters, we’ve learned patterns that aid us in the creation of objects and in building complex object structures. Now it’s time to move on to another aspect of software design, which concerns the behavior of components. In this chapter, we’ll learn how to combine objects and how to define the way they communicate so that the behavior of the resulting structure becomes extensible, modular, reusable, and adaptable. Problems such as “How do I change parts of an algorithm at runtime?”, “How can I change the behavior of an object based on its ...