96SEO 2026-02-20 02:01 13
观察者模式的结构抽象主题Subject具体主题Concrete

Subject抽象观察者Observer具体观察者Concrete
订阅模式它是一种行为型设计模式。
在这种模式中存在一个被观察的对象主题Subject以及多个对该主题状态变化感兴趣的观察者Observer对象。
当主题的状态发生改变时它会主动通知所有已注册的观察者观察者们可以根据收到的通知做出相应的响应从而实现对象之间的一种松耦合的交互关系。
观察者模式定义了一种一对多的依赖关系让多个观察者对象同时监听同一主题对象当这个主题对象发生变化时能够通知到所有观察者使他们能够自动更新自己
主题对象和观察者对象之间相互依赖的关系比较松散主题只负责在自身状态改变时通知观察者而不用关心观察者具体会做什么操作观察者也只需要关注主题的通知不用了解主题内部状态变化的具体实现细节这样使得它们可以独立地进行修改和扩展降低了代码的耦合度。
一个主题可以有多个观察者关注它的状态变化当主题状态更新时能同时通知到所有相关的观察者方便实现一些需要多方响应的业务场景比如在一个股票交易系统中当某支股票价格变化主题状态改变多个关注该股票的股民客户端观察者都能及时收到通知并做出相应决策。
如果要新增观察者或者改变主题的通知逻辑等相对来说比较容易实现对其他部分的代码影响较小能够灵活应对业务需求的变化。
它定义了注册、移除观察者以及通知观察者等方法的接口维护了一个观察者列表用于记录所有注册的观察者对象当自身状态改变时通过调用通知方法来告知所有观察者。
实现了抽象主题中定义的接口具体管理观察者的注册和移除操作并且在自身内部状态发生变化时按照约定的通知机制去通知所有已注册的观察者。
它持有自身实际的业务数据和状态信息。
定义了一个更新update方法的接口当接收到主题的通知时具体的观察者实现类会通过这个方法来执行相应的业务逻辑以对主题状态变化做出响应。
实现了抽象观察者中定义的更新方法在该方法中编写具体的业务逻辑明确在收到主题通知后自身要进行的操作比如更新界面显示、进行数据记录等操作。
以下是一个简单的基于观察者模式的示例代码模拟一个气象站发布天气数据多个客户端观察者接收并处理天气信息的场景
(std::vectorObserver*::iterator
o){observers.erase(it);break;}}}void
(std::vectorObserver*::iterator
webPage;wea***rData.registerObserver(mobileApp);wea***rData.registerObserver(webPage);wea***rData.setMeasurements(25.0,
1013.0);wea***rData.removeObserver(mobileApp);wea***rData.setMeasurements(26.0,
Observer是抽象观察者规定了update方法接口用于接收主题状态变化的通知并处理。
Subject是抽象主题定义了注册、移除观察者以及通知观察者等相关接口。
Wea***rData作为具体主题管理着观察者列表当调用setMeasurements方法改变内部天气数据状态时会通过notifyObservers方法通知所有已注册的观察者。
MobileApp和WebPage是具体观察者实现了update方法在接收到气象站主题的通知后各自通过不同的显示方法display和showData来展示更新后的天气数据。
在main函数中演示了观察者的注册、主题状态更新通知以及观察者移除等操作流程体现了观察者模式的基本应用场景。
//观察者模式Observer又叫发布-订阅模式Publish/Subscribe定义对象间一种一对多的依赖关系
//使得每当一个对象改变状态则所有依赖于它的对象都会得到通知并自动更新class
Update(){cout我是小李我去看华为博客了endl;}
Update(){cout我是小王我去看华为博客了endl;}
m_list;//保存观察者就是关注我博客的用户//记录观察者void
*p_user){m_list.push_back(p_user);}void
*p_user){m_list.remove(p_user);}//开始通知所有我的观察者void
m_list.begin();for(;itr!m_list.end();itr){(*itr)-Update();}}
USERWANG();huawei.AddUser(xiaowang);huawei.AddUser(xiaoli);huawei.WriteBlogOk();//这个时间点触发通知return
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback