依赖倒置原则 — 软件工程选择题
题目
某系统的通知模块中,高层类 NotificationManager 的 send() 方法直接依赖具体类 EmailSender。现需求变更为支持短信发送,需修改 NotificationManager 源码。依据依赖倒置原则,最合理的重构方式是:A. 将 NotificationManager 与具体发送类都改为继承自 EmailSender B. 抽象出 Sender 接口,让 EmailSender、SmsSender 实现该接口,NotificationManager 依赖 Sender 接口 C. 在 NotificationManager 中用 if-else 判断发送类型并分别实例化具体类 D. 将 NotificationManager 的代码复制一份专用于短信发送