Chapter 2 - Designing Classes with a Single Responsibility
Grouping Methods into Classes The classes you create will affect how you think about your application forever. They define a virtual world, one that constrains the imagination of everyone downstream. Despite the importance of correctly grouping methods into classes, at this early stage of your project you cannot possibly get it right. Design is more the art of preserving changeability than it is the act of achieving perfection. Organizing Code to Allow for Easy Changes We define easy to change as: ...
Chapter 1 - Object-Oriented Design
The Problem Design Solves Imagine you wrote an application, also imagine that once written this application need never change. In this case design does not matter. Unfortunately, something will change. Change is unavoidable. The application was a huge success but now everyone is asking for more features. It is this need for change that makes design matter. Applications that are easy to change are a pleasure to write and a joy to extend. Applications that resist change are just the opposite; every change is expensive and each makes the next cost more. ...