C++观察者模式Observer

组件协作

--(都是晚绑定的)

----观察者模式

为某些对象建立一种通知依赖 的关系,

只要这个对象状态发生改变,观察者对象都能得到通知。

但是依赖关系要松耦合,不要太依赖。

eg:做一个文件分割器,需要一个界面mainform。里面有文件路径,文件号。

但是如果文件太大了,我想分割,想要一个进度条。依赖倒置原则:高层模块不能依赖底层模块。

Bar上述这样就不可以,因为编译时依赖了,这样是违背依赖倒置的。

怎么样重构这个代码?是不是找filesplitter的父类就可以了呢?也很粗浅。

Bar实际上就是一种通知,不需要一种控件 来表达。而需要抽象的通知机制

直接写一个IProgress类当抽象接口,然后多继承,然后重写、调用。

上图,从绿色到黑色。从不良耦合到良好耦合。

如果需要多个观察者呢?

相关推荐
雅雅姐26 分钟前
Android14 init.rc中on boot阶段操作4
android
fatiaozhang95271 小时前
中国移动中兴云电脑W132D-RK3528-2+32G-刷机固件包(非原机制作)
android·xml·电脑·电视盒子·刷机固件·机顶盒刷机
Android出海3 小时前
Google Play账户与App突遭封禁?紧急应对与快速重构上架策略
android·网络·重构·新媒体运营·产品运营·内容运营
恋猫de小郭3 小时前
Flutter 官方 LLM 动态 UI 库 flutter_genui 发布,让 App UI 自己生成 UI
android·前端·flutter
锅拌饭4 小时前
saveEnabled导致的Fragment大量泄露
android
叽哥4 小时前
Kotlin学习第 3 课:Kotlin 流程控制:掌握逻辑分支与循环的艺术
android·java·kotlin
CYRUS_STUDIO4 小时前
别让 so 裸奔!移植 OLLVM 到 NDK 并集成到 Android Studio
android·android studio·llvm
尚久龙4 小时前
安卓学习 之 图片控件和图片按钮
android·java·学习·手机·android studio·安卓
东风西巷4 小时前
Don‘t Sleep:保持电脑唤醒,确保任务不间断
android·电脑·软件需求
tangweiguo030519874 小时前
FlutterActivity vs FlutterFragmentActivity:全面对比与最佳实践
android·flutter