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

找外包公司做网站广告最多的网站

找外包公司做网站,广告最多的网站,支付宝 收费 网站开发,赤峰网站开发一、概述 观察者模式 (Observer Pattern) 是一种行为型设计模式,又被称为发布-订阅 (Publish/Subscribe) 模式,它定义了对象之间的一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会自动收到通知并更新…

一、概述

        观察者模式 (Observer Pattern) 是一种行为型设计模式,又被称为发布-订阅 (Publish/Subscribe) 模式,它定义了对象之间的一种一对多的依赖关系,使得当一个对象的状态发生变化时,所有依赖于它的对象都会自动收到通知并更新。

二、结构

在观察者模式中有如下角色:

  • Subject:观察对象,定义了注册观察者和删除观察者的方法。此外,它还声明了“获取现在的状态”的方法。
  • ConcreteSubject:具体观察对象,当自身状态发生变化后,它会通知所有已经注册的 Observer 角色。
  • Observer:抽象观察者,负责接收来自 Subject 角色的状态变化的通知,为此,它声明了 update 方法。
  • ConcrereObserver:具体观察者,当它的 update 方法被调用后,会去获取要观察的对象的最新状态。

三、代码实现

1、Observer

package com.xu.demo.observerPattern;/*** 观察者接口*/
public interface Observer {void update(String message);
}

2、ConcreteObserver

 

package com.xu.demo.observerPattern;/*** 观察者实例*/
public class ConcreteObserver implements Observer{private String name;public ConcreteObserver(String name) {this.name = name;}@Overridepublic void update(String message) {System.out.println(name + ": " + message);}
}

3、Subject

package com.xu.demo.observerPattern;/*** 主题接口*/
public interface Subject {//添加订阅者(观察者对象)void attach(Observer observer);//删除订阅者void detach(Observer observer);//通知订阅者更新消息void notify(String message);
}

4、SubscriptionSubject

 

package com.xu.demo.observerPattern;import java.util.ArrayList;
import java.util.List;/*** 主题操作类*/
public class SubscriptionSubject implements Subject{//定义一个集合,用来存储多个观察者对象private List<Observer> observerList = new ArrayList<>();@Overridepublic void attach(Observer observer) {observerList.add(observer);}@Overridepublic void detach(Observer observer) {observerList.remove(observer);}@Overridepublic void notify(String message) {//遍历集合for (Observer observer : observerList) {//调用观察者对象中的 update 方法observer.update(message);}}
}

 5、ObserverPattern

 

 

package com.xu.demo.observerPattern;public class ObserverPattern {public static void main(String[] args) {//1.创建主题对象SubscriptionSubject subject = new SubscriptionSubject();Observer ronnie = new ConcreteObserver("Ronnie");Observer ding = new ConcreteObserver("Ding");Observer trump = new ConcreteObserver("Trump");//2.观察者订阅主题subject.attach(ronnie);subject.attach(ding);subject.attach(trump);//3.更新主题subject.notify("Java专栏更新了!");System.out.println("====================我是分割线==================");//4.观察者取消订阅主题subject.detach(ding);subject.detach(trump);//5.更新主题subject.notify("Python专栏更新了!");}}

运行结果:

至此,一个最简单的 发布-订阅 (Publish/Subscribe) 模式代码实例就完成了,大家认真理解好好体会,你也能成为IT高手,我们下回再见。

http://www.yidumall.com/news/79923.html

相关文章:

  • 阿里云 建网站国内搜索引擎排名第一
  • 工业和信息化部网站备案系统查询广州网站营销seo费用
  • 广州天河酒店网站建设杭州网站排名提升
  • 做网站 毕业设计大数据精准客户
  • 重庆建筑建设委员会官方网站网站seo推广营销
  • 水产公司网站源码网络营销咨询服务
  • 大型门户网站程序平面设计
  • 男人女人做那个网站个人建网站需要多少钱
  • 源码站用dz wordpress站长之家网站排行榜
  • 成都商城网站建设360优化大师安卓版下载
  • 聚焦伟业网站怎么做推广南宁网络推广软件
  • 吉祥物在线设计网站怎么在网上销售
  • 做网站制作的公司网站搜索引擎优化工具
  • 建立网站的必要性seo对各类网站的作用
  • 做基金的网站哪个好最近热点新闻事件
  • 山东鑫泰建设集团网站百度seo排名优化如何
  • 沧州商城网站建设网络营销策划书封面
  • 有专门做摄影画册的网站吗营销网络建设
  • 西宁做网站好的公司网络营销毕业论文范文
  • 创新的大良网站建设搜索引擎技术包括哪些
  • 个人网站设计论文一万字图片搜索图片识别
  • 谷歌app官方下载seo免费资源大全
  • 建网站卖虚拟资源需要怎么做关键词调整排名软件
  • 建设行业最新资讯动态网站福州网站seo
  • 个人网站做音乐网要备文化人民日报最新消息
  • 做网站添加支付功能要多少钱上海网站关键词排名
  • 商品网站源码职业技能培训
  • 网站受到攻击会怎么样推广赚钱app
  • 网站备案撤销原因做教育培训应该注册什么公司
  • 上海seo整站优化国际最新新闻热点事件