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

意见反馈的网站怎么做开个跨境电商要多少钱

意见反馈的网站怎么做,开个跨境电商要多少钱,个人小程序免费制作平台,wordpress 建企业网站定义 定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。 ——《设计模式》GoF 使用场景 一个对象(目标对象)的状态发生改变,所有的依赖对…

定义

定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
——《设计模式》GoF

使用场景

一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。

结构

在这里插入图片描述

代码示例

//Observer.h
/****************************************************/
#ifndef OBSERVER_H
#define OBSERVER_H
#include<iostream>
#include<list> 
using namespace std;class Observer {
public://构造Observer(){ }//析构virtual ~Observer(){ }//更新virtual void updata(){ }
};class Server {
private://观察者链表list<Observer*> m_Observer;protected://服务器状态string m_Status;public://构造函数Server(){ }//析构函数virtual ~Server(){ }//添加观察者void Attach(Observer* observer) {this->m_Observer.push_back(observer);}//移除观察者void Remove(Observer* observer) {this->m_Observer.remove(observer);}//设置服务器状态virtual void SetStatus(string s){ }//获取服务器状态virtual string GetStatus() {return this->m_Status;}//通知观察者void Notify() {for (list<Observer*>::iterator iter = this->m_Observer.begin();iter != m_Observer.end(); iter++) {(*iter)->updata();}}
};//具体服务器
class Concrete_Server : public Server {
private://用户名称string m_Name;
public://构造Concrete_Server(string name) {this->m_Name = name;}//析构~Concrete_Server(){ }//设置服务器状态virtual void SetStatus(string s) { this->m_Status = "("+this->m_Name+")"+s;}//获取服务器状态virtual string GetStatus() {return this->m_Status;}
};//具体观察者
class Concrete_Observer : public Observer {
private://观察者名称string m_Name;//需要观察的服务器Server* m_Server;
public://构造Concrete_Observer(string name, Server* server) {this->m_Name = name;this->m_Server = server;}//析构~Concrete_Observer(){ }//更新virtual void updata() {cout << this->m_Name << ": " << this->m_Server->GetStatus() << endl;}
};#endif
//test.cpp
/****************************************************/
#include <iostream>
#include <string>
#include "Observer.h"int main()
{Server* server1 = new Concrete_Server("服务器1");Observer* observer1 = new Concrete_Observer("观察者1", server1);Observer* observer2 = new Concrete_Observer("观察者2", server1);server1->Attach(observer1);server1->Attach(observer2);server1->SetStatus("2.1.0.001更新系统");server1->Notify();delete server1;server1 = NULL;delete observer1;observer1 = NULL;return 0;
}

运行结果:
在这里插入图片描述

要点总结

  • 使用面向对象的抽象,Observer模式使得我们可以独立地改变目标与观察者,从而使二者之间的依赖关系达致松耦合。
  • 目标发送通知时,无需指定观察者,通知(可以携带通知信息作为参数)会自动传播。
  • 观察者自己决定是否需要订阅通知,目标对象对此一无所知。
  • Observer模式是基于事件的UI框架中非常常用的设计模式,也是MVC模式的一个重要组成部分。
http://www.yayakq.cn/news/335092/

相关文章:

  • 访问网站提示输入用户名密码学平面设计网上哪个培训好
  • 爱狼戈网站建设网站任务界面
  • 自己做网站微商鞍山建立公司网站的步骤
  • 代做效果图网站好阳泉哪里做网站
  • 检查部门网站建设南昌网站建设托管
  • 网站制作好了怎么上传wordpress采集附件
  • cc0图片素材网站飞沐网站建设公司北京
  • 做网站美工排版做网站去青鸟学什么专业
  • 东莞网站推广营销网站设计网页设计导航
  • 移动网站开发技术网站开发学习流程
  • 济南网站建设开发公司注册公司有什么好处
  • 网站建设验收单微信商城怎么注册
  • 网站内容排版设计百度权重站长工具
  • 网站建设的自我总结东莞家居网站建设
  • 网站模板安装教程做英文网站 赚钱
  • 小企业网站欣赏建设企业资质双网是哪两个网站
  • 中小学做课题研究的网站网络编程代码
  • 北京网站定制设计开发公司上海app研发
  • vs做asp网站网站引导视频怎么做
  • 南宁手机企业网站定制公司哈尔滨优惠的网站建设
  • 上海史特做网站多少钱高端定制手机网站
  • 做环保要知道的几个网站织梦 网站教程
  • 网站建设专业工资德商网站建设
  • 哈尔滨网站建设1元钱网站建设研究意义
  • 自适应网站开发书籍网站开发岗位介绍
  • 有哪些能做专门接做标书的网站苏州营销型网站建设
  • 怎么做装球的网站wordpress 连载插件
  • 利用网站建设平台重庆网站seo案例
  • 全屏响应式网站建设群晖ds218+做网站
  • e龙岩网站网站免费观看永久视频下载