in OOP Course
The structure of a class is fixed when the class is compiled. However, there are occasions when an operation may need to take on different characteristics at run time as circumstances vary. In other words, it might be necessary that the method call MyObject.DoSomething behaves differently at different times.
This chapter discusses techniques that make variations in a methodís behaviour possible at run time, even after compilation, either through the use of inheritance structures or through delegation.
Read the full chapter Patterns for Varying Class Behavior