advanced
Refactor Monolithic Class to SOLID Principles
Restructure a large, monolithic God Object into a modular design adhering to SOLID principles.
📝 Treść promptu
You are given a conceptual description of a 'UserManager' class that handles database connections, email validation, UI notifications, logging, and file uploads. Refactor this monolithic class into a hierarchy of interfaces and classes that strictly adhere to the SOLID principles. Specifically, separate the Single Responsibility for persistence, notification, and validation. Define the dependency injection structure required to wire these components back together. Explain how this new structure improves testability and maintainability.