The fact
This approach separates business logic from presentation layer, easing tests and integrations.
Refactoring shows that well-designed abstraction from the start drastically reduces future complexity.
Click the link to read an article on the topic: