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

做网站第二年要续费吗教育培训机构排名

做网站第二年要续费吗,教育培训机构排名,苏州微信网站,淘宝式网站建设文章目录 1.概念1.1 什么是观察者模式1.2 优点与缺点 2.实现方式3. Java 哪些地方用到了观察者模式4. Spring 哪些地方用到了观察者模式 1.概念 1.1 什么是观察者模式 观察者模式(Observer Pattern)是一种行为型设计模式,它允许对象在状态改…

文章目录

  • 1.概念
    • 1.1 什么是观察者模式
    • 1.2 优点与缺点
  • 2.实现方式
  • 3. Java 哪些地方用到了观察者模式
  • 4. Spring 哪些地方用到了观察者模式

1.概念

1.1 什么是观察者模式

观察者模式(Observer Pattern)是一种行为型设计模式,它允许对象在状态改变时通知多个观察者对象。
可以用于mqtt的订阅消息后,根据观察者模式触发获取接收消息并设置相关业务代码。
观察者模式包含以下主要角色
主题(Subject):主题是通知者,它知道观察者,提供注册和删除观察者对象的接口。
观察者(Observer):观察者是接收通知的对象,它实现了更新接口以接收主题的状态。
具体主题(Concrete Subject):具体主题是主题的具体实现,它维护自己的状态,当状态改变时,它会通知所有的观察者。
具体观察者(Concrete Observer):具体观察者是观察者的具体实现,它实现更新接口以接收具体主题的状态。
在Java中,观察者模式可以通过java.util.Observable类和java.util.Observer接口来实现。Observable类是主题的抽象,Observer接口是观察者的抽象。

1.2 优点与缺点

优点:
1.降低了系统中对象之间的耦合度,使得系统更容易扩展。
2.可以实现广播机制,自动通知所有相关的对象。
缺点:
1.如果一个主题有很多观察者,通知所有观察者会花费很多时间。
2.如果观察者和主题之间的抽象耦合度很高,观察者和主题必须知道彼此的具体实现,系统会变得复杂。

2.实现方式

import java.util.Observable;
import java.util.Observer;// 具体观察者1
class BinaryObserver implements Observer {private Observable observable;private int state;public BinaryObserver(Observable observable) {this.observable = observable;observable.addObserver(this);}@Overridepublic void update(Observable o, Object arg) {state = ((ConcreteSubject) o).getState();System.out.println("Binary String: " + Integer.toBinaryString(state));}
}// 具体观察者2
class OctalObserver implements Observer {private Observable observable;private int state;public OctalObserver(Observable observable) {this.observable = observable;observable.addObserver(this);}@Overridepublic void update(Observable o, Object arg) {state = ((ConcreteSubject) o).getState();System.out.println("Octal String: " + Integer.toOctalString(state));}
}// 具体主题
class ConcreteSubject extends Observable {private int state;public int getState() {return state;}public void setState(int value) {this.state = value;setChanged();notifyObservers();}
}public class ObserverPatternDemo {public static void main(String[] args) {ConcreteSubject subject = new ConcreteSubject();new BinaryObserver(subject);new OctalObserver(subject);System.out.println("First state change: 15");subject.setState(15);System.out.println("Second state change: 10");subject.setState(10);}
}

在这个例子中,我们有一个ConcreteSubject类,它继承了Observable类,并维护了一个状态。我们还有两个观察者类,BinaryObserver和OctalObserver,它们实现了Observer接口。当ConcreteSubject的状态改变时,它会通知所有的观察者,观察者会更新自己的状态并打印出相应的信息。

3. Java 哪些地方用到了观察者模式

Swing事件处理: Java的Swing GUI框架使用观察者模式来处理事件。例如,按钮点击、滑块移动等事件都会触发事件源(如按钮、滑块)通知所有注册的监听器(观察者)。
JDBC驱动管理: JDBC驱动程序管理器使用观察者模式来管理JDBC驱动程序的加载。当应用程序请求连接到数据库时,驱动程序管理器会通知所有注册的驱动程序(观察者),以尝试建立连接。
JavaBeans: JavaBeans规范使用观察者模式来支持属性更改通知。当JavaBean的属性发生更改时,它会通知所有注册的监听器(观察者)。
事件监听器: 在Java中,事件监听器接口(如ActionListener、MouseListener等)都是观察者模式的体现。事件源将事件委托给事件监听器,后者作为事件处理的观察者。
消息订阅系统: 在消息订阅系统中,发布者将消息发布给所有订阅者。订阅者作为观察者,当有新消息发布时,它们会接收到通知。
MVC(Model-View-Controller)架构: 在MVC架构中,模型(Model)作为主题,视图(View)作为观察者。当模型的数据发生变化时,它会通知所有注册的视图,以便视图可以更新显示内容。

4. Spring 哪些地方用到了观察者模式

事件发布: Spring的事件驱动模型使用观察者模式来解耦事件的生产者和消费者。ApplicationEventMulticaster类充当代理,它将事件发布给所有注册的监听器。
Web集成: Spring的Web模块使用观察者模式来集成不同的Web框架。例如,DispatcherServlet充当代理,它在处理HTTP请求时会触发事件,这些事件可以被注册的监听器捕获。
资源访问: Spring的ResourceLoader和Resource接口使用观察者模式来抽象不同类型的资源访问。ResourceLoader的实现类充当代理,它们将资源访问的调用转换为具体文件系统、类路径或URL的访问。
消息服务: Spring的JMS(Java消息服务)集成使用观察者模式来适配不同的消息中间件。JmsTemplate和JmsListenerContainerFactory类充当代理,它们将Spring的消息抽象转换为具体的消息中间件操作。

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

相关文章:

  • 宣传信息网网站规划书互联网营销主要学什么
  • 自己的网站怎么做搜索引擎百家联盟推广部电话多少
  • 吉林长春有做网站的吗东营seo整站优化
  • 广州最新病毒感染情况百度seo规则
  • 襄阳文明建设投诉网站最新百度关键词排名
  • 做网站读什么专业微信营销的模式有哪些
  • wordpress制作企业网站百度百科分类方法
  • 免费做商城网站杭州哪家seo公司好
  • 做外贸一般在什么网站肇庆网站推广排名
  • 哪里有做网站的公司网易最新消息新闻
  • 网站后台怎么添加模板google浏览器官网入口
  • 长沙做无痛肠镜东大医院l网站哈尔滨seo关键词排名
  • 电子商务网站开发原则品牌运营策略有哪些
  • 可以自己制作视频的软件南宁seo产品优化服务
  • 做外贸到那个网站卡一卡二卡三入口2021
  • 杭州做网站公司排名游戏推广员是违法的吗
  • 网站设计公司收费标准2023网络营销成功案例
  • 58同城类似的网站怎么做赣州seo公司
  • 找网络公司做的网站可以出售吗软件培训机构排名
  • 快速建站服务铁力seo
  • 哪个网站可以帮忙做简历百度下载安装app
  • 长沙营销网站建设深圳网络营销的公司哪家好
  • 用jquery做的网站公司网址怎么制作
  • 类似于百度快照的网站竞价是什么意思
  • 门户网站产品设计方案西安疫情最新情况
  • 手游app平台排行榜seo服务包括哪些
  • 网页制作企业网站作业每日一则新闻摘抄
  • 成熟网站开发联系电话西点培训
  • 小程序微商城定制开发泸州网站优化推广
  • 郑州网站建设选微锐x大连网站排名推广