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

如何做网站互链规则seo品牌优化

如何做网站互链规则,seo品牌优化,新乡做网站公司,super cache wordpress观察者 观察者模式(Observer Pattern)是一种行为型设计模式,主要用于定义对象之间的一对多依赖关系,让多个观察者对象能够同时监听某个主题对象的状态变化,并在主题对象状态改变时自动通知所有观察者对象。 参考b站博…

观察者

观察者模式(Observer Pattern)是一种行为型设计模式,主要用于定义对象之间的一对多依赖关系,让多个观察者对象能够同时监听某个主题对象的状态变化,并在主题对象状态改变时自动通知所有观察者对象。

参考b站博主代码:

#include <list>
#include <iostream> struct Stock;struct Observer {Stock* stock;Observer(Stock* stock);       //定义Observer的构造函数virtual ~Observer();          //虚析构函数virtual void update(int) = 0; //虚函数
};//Monitor继承自Observer
struct Monitor : Observer {explicit Monitor(Stock* stock) : Observer(stock) {} //避免隐式转换,用传入monitor的stock初始化父类void print(int v) {std::cout << "Monitor: " << v;}void update(int v) override { //monitor子类覆写的update函数print(v);}
};struct Billboard : Observer {explicit Billboard(Stock* stock) : Observer(stock) {}void display(int v) {std::cout << "Billboard: " << v;}void update(int v) override {display(v);}
};struct Stock {int price = 0;std::list<Observer*> observerList;//创建一个observer类指针类型的指针列表void attach(Observer* o) {observerList.push_back(o);}void detach(Observer* o) { observerList.remove(o); }void notify(int v) {for (auto observer : observerList) {observer->update(v);}}void setPrice(int v) { price = v;notify(v);}
};Observer::Observer(Stock* stk) : stock(stk) {stock->attach(this);
}Observer::~Observer() {stock->detach(this);
}int main() {Stock stock;Monitor monitor { &stock };Billboard board { &stock };stock.setPrice(10);
}

ai修改的c语言版本

typedef struct Stock Stock;
typedef struct Observer Observer;// 定义Observer(相当于父类)
struct Observer {Stock* stock;void (*update)(Observer* self, int v); // 函数指针模拟虚函数Observer* next; // 简单链表
};// 定义Stock
struct Stock {int price;Observer* observerList; // 单链表头
};// 注册observer
void attach(Stock* stock, Observer* observer) {observer->next = stock->observerList;stock->observerList = observer;
}// 注销observer
void detach(Stock* stock, Observer* observer) {Observer** current = &stock->observerList;while (*current) {if (*current == observer) {*current = observer->next;break;}current = &((*current)->next);}
}// 通知所有观察者
void notify(Stock* stock, int v) {Observer* current = stock->observerList;while (current) {current->update(current, v);current = current->next;}
}// 设置价格并通知
void setPrice(Stock* stock, int v) {stock->price = v;notify(stock, v);
}// Monitor对象(子类)
typedef struct {Observer base; // 继承Observer
} Monitor;// Monitor的update实现
void Monitor_update(Observer* self, int v) {printf("Monitor: %d\n", v);
}// 创建Monitor
Monitor* Monitor_create(Stock* stock) {Monitor* monitor = (Monitor*)malloc(sizeof(Monitor));monitor->base.stock = stock;monitor->base.update = Monitor_update;monitor->base.next = NULL;attach(stock, (Observer*)monitor);return monitor;
}// 销毁Monitor
void Monitor_destroy(Monitor* monitor) {detach(monitor->base.stock, (Observer*)monitor);free(monitor);
}// Billboard对象(子类)
typedef struct {Observer base;
} Billboard;// Billboard的update实现
void Billboard_update(Observer* self, int v) {printf("Billboard: %d\n", v);
}// 创建Billboard
Billboard* Billboard_create(Stock* stock) {Billboard* board = (Billboard*)malloc(sizeof(Billboard));board->base.stock = stock;board->base.update = Billboard_update;board->base.next = NULL;attach(stock, (Observer*)board);return board;
}// 销毁Billboard
void Billboard_destroy(Billboard* board) {detach(board->base.stock, (Observer*)board);free(board);
}// 测试
int main() {Stock stock = { 0, NULL };Monitor* monitor = Monitor_create(&stock);Billboard* billboard = Billboard_create(&stock);setPrice(&stock, 10);// 销毁Monitor_destroy(monitor);Billboard_destroy(billboard);return 0;
}
http://www.dtcms.com/wzjs/487359.html

相关文章:

  • 网站建设找推推蛙湘潭网站设计
  • wordpress电话按钮站长工具seo综合查询可以访问
  • wordpress仿唯品会seo营销名词解释
  • 温州平阳县企业网站搭建推荐百度快照优化公司
  • 新闻网站建设合同seo网站关键词快速排名
  • 如何做视频网站不侵权线上运营推广
  • 红孩子网站建设永久免费自助建站系统
  • 大学生ppt自我介绍幻灯片类聚seo
  • 做英文网站地图处理器优化软件
  • 深圳网站建设代理商网站制作的重要性及步骤详解
  • 手机网站开发软件下载网店运营推广平台
  • 做网站购买服务器水果营销软文
  • 我做动作你来猜的网站产品seo怎么优化
  • 做的好的手机网站有哪些域名注册哪个平台比较好
  • 和优网络做的网站感染病毒成人速成班有哪些专业
  • 网站如何做微信推广百度电话
  • 设计漂亮的网站百度竞价开户3000
  • 设计师常去的网站百度平台商户电话号码
  • 东莞 塑胶 网站建设郑州seo竞价
  • 东莞网站建设科技公司互联网运营
  • 能自己做谱子的网站武汉搜索引擎营销
  • 专门做办公的网站太原seo管理
  • 亦庄网站开发公司媒体:多地新增感染趋势回落
  • 盘古网站建设什么是seo营销
  • 成都大型网站设计公司帆软社区app
  • 学习如何做网站推广普通话的意义是什么
  • 制作网页步骤链接seo优化排名营销
  • 淘宝客怎么样做网站台州网站建设推广
  • 自用网站开发费用会计分录临沂今日头条新闻最新
  • 广西网站建设价格常用的网络营销方法有哪些