C++观察者模式Observer

组件协作

--(都是晚绑定的)

----观察者模式

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

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

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

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

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

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

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

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

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

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

如果需要多个观察者呢?

相关推荐
-指短琴长-4 小时前
MySQL快速入门——基本查询(下)
android·mysql·adb
stevenzqzq5 小时前
android lambda回调
android
林北北的霸霸7 小时前
django初识与安装
android·mysql·adb
A.说学逗唱的Coke7 小时前
【观察者模式】深入 Spring 事件驱动模型:从入门到微服务整合实战
spring·观察者模式·微服务
Java 码农9 小时前
MySQL EXPLAIN 详解与优化指南
android·mysql·adb
stevenzqzq13 小时前
Android Hilt 入门教程_传统写法和Hilt写法的比较
android
wuwu_q13 小时前
用通俗易懂方式,详细讲讲 Kotlin Flow 中的 map 操作符
android·开发语言·kotlin
_李小白14 小时前
【Android FrameWork】第五天:init加载RC文件
android
2501_9160074714 小时前
手机使用过的痕迹能查到吗?完整查询指南与步骤
android·ios·智能手机·小程序·uni-app·iphone·webview
黄毛火烧雪下15 小时前
React Native (RN)项目在web、Android和IOS上运行
android·前端·react native