Adaptive Code: Agile coding with design patterns and SOLID principles, 2e - Hall (Pearson)