设计模式
设计原则一:开闭原则
设计原则二:迪米特法则
设计原则三:合成复用原则
设计原则四:依赖倒转原则
设计模式一:简单工程模式
自上而下的软件开发流程
UML类图
UML图六种箭头的含义(泛化、实现、依赖、关联、聚合、组合)
C++11的新变化
未命名
本文档使用 MrDoc 发布
-
+
首页
设计原则四:依赖倒转原则
 传统的过程式设计倾向于使用高层次的模块依赖于低层次的模块,抽象层依赖于具体的层次。不利于维护,动一发牵全身。 设计模式中,不再像传统的依赖一层依赖一层,而是都依赖抽象层(即,高层业务依赖于抽象类接口,底层业务也依赖于抽象类接口)  ```cpp #include <iostream> using namespace std; //依赖倒转原则 #if 0 //底层业务 class BankWorker{ public: //存款业务 void saveService(){ cout << "办理存款业务" << endl; } void payService(){ cout << "办理支付业务" << endl; } void transferService(){ cout << "办理转账业务" << endl; } }; //中层模块 void doSaveBussiness(BankWorker* worker){ worker->saveService(); } void doPayBussiness(BankWorker* worker){ worker->payService(); } void doTransferBussiness(BankWorker* worker){ worker->transferService(); } //高层业务 void test01(){ BankWorker* worker = new BankWorker; doSaveBussiness(worker); //办理存款业务 doPayBussiness(worker); //办理支付业务 doTransferBussiness(worker); //办理转账业务 } #endif //银行工作人员 class AbstractWorker{ public: virtual void doBussiness() = 0; }; //专门办理存款业务的工作人员 class SaveBankWorker : public AbstractWorker{ public: virtual void doBussiness(){ cout << "办理存款业务" << endl; } }; //专门办理支付业务的工作人员 class PayBankWorker : public AbstractWorker{ virtual void doBussiness(){ cout << "办理支付业务" << endl; } }; //专门办理转账业务的工作人员 class TransferBankWorker : public AbstractWorker{ virtual void doBussiness(){ cout << "办理转账业务" << endl; } }; //中层业务 void doNewBussiness(AbstractWorker* worker){ worker->doBussiness(); } void test02(){ AbstractWorker * worker = new TransferBankWorker; doNewBussiness(worker); delete worker; worker = new PayBankWorker; doNewBussiness(worker); delete worker; worker = new SaveBankWorker; doNewBussiness(worker); delete worker; } ```
admin
2024年3月19日 10:41
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码