Refactoring the flight search system
This chapter’s code focuses on a flight scheduling system for Cloudy Skies Airlines.
The flight scheduling system is a simple one that tracks all active flights through a FlightScheduler
class and allows external callers to search for flights of interest. This class in turn tracks flights through a collection of IFlightInfo
instances, which may either be a PassengerFlightInfo
or a FreightFlightInfo
instance, depending on whether the flight carries passenger or freight.
The high-level interactions of these classes can be seen in Figure 5.1:
Figure 5.1 – Classes involved in the Cloudy Skies Airline flight scheduling system
The code currently works and even uses polymorphism effectively to track a variety of different flights. That being said, there are some opportunities for improvement, as we’ll see. Throughout this chapter, we’ll make targeted improvements while demonstrating the...