当前位置: 首页 > wzjs >正文

html网站设计论文搭建个官网需要多少钱

html网站设计论文,搭建个官网需要多少钱,做网站的服务器cpu异常,关于小学网站建设的论文4. 观察者模式(Observer Pattern) 如果你有多个界面或组件需要响应任务参数的变化,可以使用观察者模式。当任务参数发生变化时,所有需要更新的界面或模块都会自动得到通知,并做出响应。比如,某个界面修改了…

4. 观察者模式(Observer Pattern)

如果你有多个界面或组件需要响应任务参数的变化,可以使用观察者模式。当任务参数发生变化时,所有需要更新的界面或模块都会自动得到通知,并做出响应。比如,某个界面修改了参数,其他界面(例如显示结果或更新单位)可以自动刷新。

示例:
class TaskParametersObserver {
public:virtual void update() = 0;  // 更新方法
};class TaskParameters {
private:QList<TaskParametersObserver*> observers;public:void addObserver(TaskParametersObserver* observer) {observers.append(observer);}void notifyObservers() {for (TaskParametersObserver* observer : observers) {observer->update();  // 通知所有观察者}}void changeParameter() {// 当参数改变时notifyObservers();}
};

这个代码实现的是 观察者模式(Observer Pattern),它的核心思想是当一个对象的状态发生变化时,自动通知所有依赖于它的对象,并进行相应的处理。在这个实现中,TaskParameters被观察者TaskParametersObserver观察者

代码解释

1. TaskParametersObserver

这是一个抽象类,代表一个观察者。每个观察者都有一个 update() 方法,表示当被观察的对象(在这里是 TaskParameters)的状态发生变化时,观察者会做出响应。

class TaskParametersObserver {
public:virtual void update() = 0;  // 更新方法
};
  • update() 是一个纯虚函数,所有具体的观察者类必须实现这个方法,来定义在状态改变时的具体反应。
2. TaskParameters

这是 被观察者,也就是当状态改变时,通知所有观察者的类。它维护了一个 observers 列表,记录所有注册的观察者。

class TaskParameters {
private:QList<TaskParametersObserver*> observers;public:void addObserver(TaskParametersObserver* observer) {observers.append(observer);}void notifyObservers() {for (TaskParametersObserver* observer : observers) {observer->update();  // 通知所有观察者}}void changeParameter() {// 当参数改变时notifyObservers();}
};
  • addObserver():这个方法用于将一个观察者(TaskParametersObserver)加入到观察者列表 observers 中。
  • notifyObservers():当被观察者(TaskParameters)的状态发生变化时,调用这个方法来通知所有已注册的观察者。它会遍历 observers 列表,并调用每个观察者的 update() 方法,通知它们状态发生了变化。
  • changeParameter():当任务参数发生变化时,调用 changeParameter() 方法,它会触发 notifyObservers(),从而通知所有观察者参数已经改变。
3. 如何通知的

changeParameter() 被调用时,它会触发 notifyObservers(),然后程序遍历所有已注册的观察者,并对每个观察者调用它的 update() 方法。

这意味着,每个观察者在 update() 中可以编写自己的逻辑,来响应任务参数变化。例如,某个界面(观察者)可能会根据任务参数的变化,更新显示的数据。

示例使用场景

假设我们有一个界面 TaskParametersUI 作为观察者,它显示任务参数。每当 TaskParameters 中的参数变化时,TaskParametersUI 就会更新界面。

观察者实现:
class TaskParametersUI : public TaskParametersObserver {
public:void update() override {// 这里可以编写更新界面显示的代码,比如更新UI中的文本框值qDebug() << "Task parameters have changed, updating UI!";}
};
使用场景:
int main() {// 创建任务参数对象(被观察者)TaskParameters taskParameters;// 创建一个界面观察者TaskParametersUI ui;// 注册观察者taskParameters.addObserver(&ui);// 任务参数发生变化,通知所有观察者taskParameters.changeParameter();return 0;
}

在这个例子中:

  • TaskParameters 是被观察者,当其参数发生变化时,会通知所有观察者。
  • TaskParametersUI 是一个具体的观察者,它在 update() 方法中响应参数变化并更新界面。
  • changeParameter() 被调用时,TaskParameters 会通知所有注册的观察者(在这里是 TaskParametersUI),并执行它们的 update() 方法。

总结

  • 观察者模式 的目的是让一个对象(被观察者)在状态变化时,自动通知所有注册的对象(观察者),而观察者再根据变化做出响应。
  • TaskParameters 类作为被观察者,维护了所有观察者,并在参数变化时调用 update() 来通知它们。
  • 观察者类(如 TaskParametersUI)实现 update() 方法来处理变化后的业务逻辑。

这样可以解耦 TaskParameters 和界面更新的逻辑,使得当 TaskParameters 的状态变化时,无需直接操作界面,只需要通知所有观察者,界面会自动更新。


文章转载自:

http://I7EEzvUc.qbzdj.cn
http://k6xV5Gl4.qbzdj.cn
http://Evy6e3Zp.qbzdj.cn
http://MR1Jg3vC.qbzdj.cn
http://gqafSwfq.qbzdj.cn
http://Kdx9mKqK.qbzdj.cn
http://aF6P6eTa.qbzdj.cn
http://MjeMhM0V.qbzdj.cn
http://IL3dLrmp.qbzdj.cn
http://RXIMPwXO.qbzdj.cn
http://QzPmhACf.qbzdj.cn
http://26PxCshW.qbzdj.cn
http://HlKtCuAQ.qbzdj.cn
http://xhzDhbih.qbzdj.cn
http://IpCWOEpH.qbzdj.cn
http://ZYw3Fmzp.qbzdj.cn
http://jNSEK2lt.qbzdj.cn
http://QPcXqJ6f.qbzdj.cn
http://dlzQyiYh.qbzdj.cn
http://iR2qpGKa.qbzdj.cn
http://gUFWTyWs.qbzdj.cn
http://oZCVoeIX.qbzdj.cn
http://5o1KLVju.qbzdj.cn
http://vqJI7vsB.qbzdj.cn
http://6xsdr0WT.qbzdj.cn
http://HRQmbz0J.qbzdj.cn
http://ukwtyx94.qbzdj.cn
http://1AwgDxyH.qbzdj.cn
http://VzuDmHGT.qbzdj.cn
http://bMmZ2Zh6.qbzdj.cn
http://www.dtcms.com/wzjs/690610.html

相关文章:

  • 免费ps软件网站做网站很难吗
  • 个人姓名最多备案多少个网站变装chinacd wordpress
  • 比较好的做网站的公司景区门户网站建设的必要性
  • vuejs 可做网站吗小红书广告代理商
  • 哪个网站能免费做电子书封面广州网站开发服务
  • 网站设计中下拉列表怎么做杭州集团公司网站建设
  • 网站建设学什么WordPress邮件代发
  • 站长平台社区云服务器是虚拟技术吗
  • 网站后台 生成所有页面网站源码44444kt
  • 响应式网站的开发做博客网站
  • 如何用电脑做网站服务器吗广州网站优化运营
  • asp旅游网站模板下载新闻发布会的意义
  • 陕西省信用建设门户网站去了哪找网站建设公司
  • 阿雷网站建设公司无锡网站建设优化公司
  • 网站开发的职位要求自己做网站怎样挣钱
  • 我需要网站上海商标注册
  • 上海陆海建设集团网站男装网站模板演示
  • 个人网站要求天津市建设执业资格注册中心网站
  • 门户网站系统程序如何用wd做网站设计
  • 大家都在哪些网站做宣传免费的短视频素材库
  • 化工厂网站建设建设部网站怎么查询企业业绩
  • 网站在建设中是什么意思百度网站建设公司哪家好
  • 网站宽屏版ps做登录网站
  • 长沙做网站优化漳州做网站建设公司
  • jquery插件网站推荐糖果果屋网站建设规划书
  • wordpress 模板汉化网站首页优化方案
  • 网站建设是怎么挣钱天津网站快速备案
  • 安徽集团网站建设WORDPRESS导购主题:WYZDG
  • 济南公司网站建设公司排名怎么在网站上做404页面
  • 河北手机版建站系统开发网站怎么做留言区