This lecture considers a simple application for managing car rental, consisting of three classes. We discuss weaknesses in the design and possible improvements. Some of these improvements are then made to the code via well-defined refactorings that change its structure without affecting observable behaviour.
As preparatory material, we’ve provided the refactoring story from the preface of Martin Fowler’s classic book on refactoring. Before watching the lecture videos, read the story and think about the two questions that it asks. Then download the code used in the lecture.