Verified Jobs Live
Software Engineering & OOP Medium Level ~3 min read

A notification class has growing email, SMS, and push conditionals. How would you refactor it?

Interactive Practice Mode
Formulate your thoughts or take notes before revealing the model solution.
Model Answer & Deep-Dive Explanation

Identify the common send operation and introduce a notification-channel interface with separate email, SMS, and push implementations. Inject the selected channel into the application service and keep routing rules in one place. Each implementation handles its own provider errors and configuration. Add contract tests for shared expectations and focused tests for each channel. This makes adding a channel less likely to break existing ones. Avoid building a large plugin framework when three small implementations and straightforward composition are sufficient.