Code samples for "Design Pattern Zoology" presentation
Basic classes. All logic in the base class. Use overwritten inherited properties to differentiate subclasses.
Logic moved into strategy classes. Base class delegates all logic to strategy class.
Descriptors moved to decorators to aid in re-use. More animals and strategies easily added via code re-use.
User interface and control. All logic inside an if-elseif-else wrapped in a loop
Command loop split into individual command handlers and chained together. Main script sets up chain and listens for input to dispatch commands.
Events added to some commands.