Refactoring to Single-Responsibility Functions

The encodedDigits function continues to increase in complexity. We inserted blank lines in order to visually group related statements, a dead giveaway that a function does too much.

The single responsibility principle (SRP) tells us that each function should have one reason to change.[7] encodedDigits exhibits a classic violation of the SRP: it mixes high-level policy with implementation details.

Our encodedDigits function accomplishes its goal using a two-step algorithm. First append the encoded first letter to the encoding, and then iterate through the rest of the letters and append them. The problem is that encodedDigits also includes the low-level details to accomplish those two steps. encodedDigits ...

Get Modern C++ Programming with Test-Driven Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.