Pre-conditions are Boolean assertions that a client must satisfy before requesting a service. Post-conditions are Boolean assertions that a supplier must satisfy after providing a service. Invariants are Boolean assertions that must be satisfied over time. This chapter presents a good introduction to Design by Contract and some of the Eiffel language syntax. Creational patterns are concerned with decoupling the type of an object from the process of constructing objects of that type.
Structural patterns are concerned with larger structures composed of smaller structures.
Behavioral patterns are concerned with assigning responsibilities among a collection of objects. Each pattern is identified with the page number showing where it appears in the original GoF book, including its intent, static structure, dynamic structure, an Eiffel implementation demonstrating the pattern and the use of contracts, and references to related patterns. These chapters provide an excellent source for reference. Chapter 6 discusses a case study that demonstrates how to apply patterns to simplify software configuration management. Chapter 7 demonstrates how to apply patterns for building graphical user interfaces.