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

苏州学网站建设恒基建设集团网站地址

苏州学网站建设,恒基建设集团网站地址,网站开发数据库有关合同,网站运营难做嘛目录 1、观察者模式#xff08;Observer Pattern#xff09;含义 2、观察者模式的UML图学习 3、观察者模式的应用场景 4、观察者模式的优缺点 #xff08;1#xff09;优点#xff1a; #xff08;2#xff09;缺点 5、C实现观察者模式的实例 1、观察者模式…目录 1、观察者模式Observer Pattern含义 2、观察者模式的UML图学习 3、观察者模式的应用场景 4、观察者模式的优缺点 1优点 2缺点 5、C实现观察者模式的实例 1、观察者模式Observer Pattern含义 观察者模式Observer定义了一种一对多的依赖关系让多个观察者对象同事监听某一个主题对象。这个主题对象在状态发生变化时会通知所有观察者对象使它们能够自动更新自己。【DP】 观察者模式Observer Pattern是一种行为型设计模式它定义了对象之间的一对多依赖关系使得当一个对象状态发生改变时所有依赖它的对象都会自动收到通知并更新。 2、观察者模式的UML图学习 观察者模式的主要角色包括 1Subject目标被观察的对象它维护了一个观察者列表并提供了添加、删除和通知观察者的方法。 2Observer观察者观察目标的对象它定义了接收通知并进行相应操作的方法。 3ConcreteSubject具体目标具体的被观察对象继承或实现了Subject接口可以有多个不同的具体目标。 4ConcreteObserver具体观察者具体的观察者对象继承或实现了Observer接口可以有多个不同的具体观察者。 3、观察者模式的应用场景 1当一个对象的改变需要同时通知其他对象并且不知道具体有多少个对象需要通知时。 2当一个抽象模型有两个方面其中一个方面依赖于另一个方面将这两个方面封装在独立的对象中使它们可以独立地改变和复用时。 4、观察者模式的优缺点 1优点 1解耦性观察者模式将目标和观察者解耦使得它们可以独立地变化。 2扩展性可以很方便地增加新的观察者和目标符合开闭原则。 3可以实现一对多的依赖关系一个目标可以有多个观察者。 2缺点 1观察者过多时会导致通知时间增加影响性能。 2观察者和目标之间有循环依赖时可能会导致循环调用需要注意避免。 5、C实现观察者模式的实例 #include iostream #include vector// 观察者接口 class Observer { public:virtual void update(int data) 0; };// 具体观察者A class ConcreteObserverA : public Observer { public:void update(int data) override {std::cout ConcreteObserverA received update: data std::endl;} };// 具体观察者B class ConcreteObserverB : public Observer { public:void update(int data) override {std::cout ConcreteObserverB received update: data std::endl;} };// 目标类 class Subject { private:int data;std::vectorObserver* observers;public:void attach(Observer* observer) {observers.push_back(observer);}void detach(Observer* observer) {for (auto it observers.begin(); it ! observers.end(); it) {if (*it observer) {observers.erase(it);break;}}}void notify() {for (auto observer : observers) {observer-update(data);}}void setData(int newData) {data newData;notify();} };int main() {Subject subject;ConcreteObserverA observerA;ConcreteObserverB observerB;subject.attach(observerA);subject.attach(observerB);subject.setData(10);subject.detach(observerA);subject.setData(20);return 0; }在上述示例中我们定义了Observer接口和两个具体观察者类ConcreteObserverA和ConcreteObserverB。Subject类作为目标类维护了一个观察者列表并提供了attach、detach和notify等方法。在主函数中我们创建了一个Subject对象和两个具体观察者对象并通过attach方法将它们注册到Subject中。然后通过setData方法改变Subject的数据从而触发通知并更新观察者。
http://www.zqtcl.cn/news/961064/

相关文章:

  • 射阳做网站的公司在哪品牌建设是指
  • 沈阳做网站好的网站分析论文
  • 做熟食的网站美食网站网站开发后端书籍
  • 做模板下载网站挣钱吗网站建设专业导航网站
  • 网站目录结构html静态网站作品
  • 南通建设局网站分类门户网站系统
  • 合肥网站建设企业秒玩小游戏入口
  • 个人做网站开发个人网站备案取名
  • 替代wordpress 搜索seo优化排名易下拉程序
  • asp.net 网站 方案小程序开发是前端还是后端
  • 网站开发 介绍 回扣建设项目验收在哪个网站公示
  • 建立网站免费如何做物流网站
  • 重庆网站设计费用wordpress自动翻页
  • 燕郊做网站的公司seo快速优化
  • 建了网站却搜不出来设计网站室内
  • 网站运营维护新闻摘抄大全
  • 怎么优化网站的单个关键词排名wordpress 安装百度编辑器
  • led网站建设方案模板做炒作的网站
  • 注册网站免费注册qq邮箱seo服务销售招聘
  • 翻译做网站php做网站好学吗
  • 网站模板 seo响应式网站内容布局
  • 石家庄住房和城乡建设部网站企业自助建站系统怎么建
  • 建设企业网站都需要啥网站开发 自我评价
  • 购物网站主页怎么做网站建设的优势何江
  • 宿州网站建设多少钱广西壮族自治区医保网上服务大厅
  • 宾馆酒店 网站模板wordpress手动获取相关文章
  • 荆州网站开发在线推广网站的方法
  • 可以查企业的网站网站建设的外国文献
  • 什么网站可以做相册视频企业网站开发时间
  • 德州市建设小学网站精品网站建设费用