C++观察者模式Observer

组件协作

--(都是晚绑定的)

----观察者模式

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

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

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

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

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

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

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

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

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

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

如果需要多个观察者呢?

相关推荐
恋猫de小郭4 小时前
你是不是觉得 R8 很讨厌,但 Android 为什么选择 R8 ?也许你对 R8 还不够了解
android·前端·flutter
城东米粉儿6 小时前
Android Glide 笔记
android
城东米粉儿6 小时前
Android TheRouter 笔记
android
资深web全栈开发10 小时前
设计模式之观察者模式 (Observer Pattern)
观察者模式·设计模式
城东米粉儿12 小时前
Android AIDL 笔记
android
城东米粉儿12 小时前
Android 进程间传递大数据 笔记
android
城东米粉儿13 小时前
Android KMP 笔记
android
冬奇Lab14 小时前
WMS核心机制:窗口管理与层级控制深度解析
android·源码阅读
松仔log15 小时前
JetPack——Paging
android·rxjava