In the parser example we've seen that:
- Each of the modules has a single responsibility.
- Each of the packages in each module has a single responsibility.
- Each of the classes in each package has a single responsibility.
These responsibilities are each described in a sentence or two and are relatively easy to understand.
The consequence of using SRP in the parser design is that a quite complex processing implementation has
been broken down into simple to understand parts.
The result is that the amount of time to understand parser well enough to use it is surprisingly short
and the code is much easier to maintain that it would otherwise have been.
The Single Responsiblity Principle is the most important of all of the design principles we'll discuss
in Software Modeling & Analysis and in Object Oriented Design.