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

运维 网站开发2022近期时事热点素材摘抄

运维 网站开发,2022近期时事热点素材摘抄,如何做网站的cdn,有哪些摄影网站💧 观察者模式 \color{#FF1493}{观察者模式} 观察者模式💧 🌷 仰望天空,妳我亦是行人.✨ 🦄 个人主页——微风撞见云的博客🎐 🐳 《数据结构与算法》专栏的文章图文并茂🦕…

在这里插入图片描述

                                                                                       💧 观察者模式 \color{#FF1493}{观察者模式} 观察者模式💧          


🌷 仰望天空,妳我亦是行人.✨
🦄 个人主页——微风撞见云的博客🎐
🐳 《数据结构与算法》专栏的文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
💧 《Java学习笔记》专栏的文章是本人在Java学习中总结的一些知识点~ 💐
🥣 《每天一点小知识》专栏的文章可以丰富你的知识库,滴水成河~ 🌊
🪁 希望本文能够给读者带来一定的帮助~🌸文章粗浅,敬请批评指正!🐥


文章目录

  • 🐳设计模式之观察者模式
    • 引言
    • 观察者模式的概念和思想
    • 应用场景
    • 实现方式
      • 使用接口
      • 使用 Java 内置的观察者模式
    • 使用观察者模式
    • 总结
  • 🐳结语


🐳设计模式之观察者模式

引言

设计模式是软件开发中重要的概念之一。观察者模式是设计模式中的一种,它用于定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,其所有依赖者都会得到通知并自动更新。在本文中,我们将深入探讨观察者模式的概念和思想,并介绍观察者模式的应用场景以及常见的代码实现方式。


观察者模式的概念和思想

  💧观察者模式是一种行为型设计模式,它建立了一种对象之间的依赖关系,当一个对象的状态发生改变时,其所有依赖者都会得到通知并自动更新。

  💧观察者模式的核心思想是将观察者和被观察者解耦,使得它们可以独立变化。被观察者维护一个观察者列表,并提供注册、注销和通知观察者的方法。观察者通过注册到被观察者上,实现对被观察者状态变化的监听。

观察者模式的应用场景以及常见的代码实现方式 ↓

应用场景

  💧观察者模式通常在以下场景中使用:

  • 当一个对象的状态变化需要通知其他对象,并且不希望与被通知的对象之间产生紧耦合关系时。
  • 当一个对象的改变需要同时改变其他对象,并且不知道有多少对象需要改变时。
  • 当一个对象需要将自己的改变通知给一组对象

实现方式

  💧观察者模式有多种实现方式,其中最常见的方式包括使用接口使用 Java 内置的观察者模式实现。

使用接口

  💧首先,我们定义一个被观察者接口 Subject 和一个观察者接口 Observer

public interface Subject {void registerObserver(Observer observer);void unregisterObserver(Observer observer);void notifyObservers();
}public interface Observer {void update();
}

在上述代码中,Subject 接口定义了注册观察者、注销观察者和通知观察者的方法。Observer 接口定义了观察者的 update() 方法,用于接收被观察者的通知。

  💧接下来,我们实现具体的被观察者类 ConcreteSubjectConcreteObserver

public class ConcreteSubject implements Subject {private List<Observer> observers = new ArrayList<>();private int state;public void registerObserver(Observer observer) {observers.add(observer);}public void unregisterObserver(Observer observer) {observers.remove(observer);}public void notifyObservers() {for (Observer observer : observers) {observer.update();}}public int getState() {return state;}public void setState(int state) {this.state = state;notifyObservers();}
}public class ConcreteObserver implements Observer {private Subject subject;public ConcreteObserver(Subject subject) {this.subject = subject;subject.registerObserver(this);}public void update() {int state = subject.getState();// 处理被观察者状态变化的逻辑}
}

在上述代码中,ConcreteSubject 类实现了 Subject 接口,它维护了一个观察者列表并实现了注册、注销和通知观察者的方法。当 ConcreteSubject 的状态发生变化时,它会调用 notifyObservers() 方法通知所有观察者。

ConcreteObserver 类实现了 Observer 接口,它在构造函数中注册到被观察者上,并实现了 update() 方法来处理被观察者状态变化的逻辑。

使用 Java 内置的观察者模式

  💧Java 提供了内置的观察者模式实现,可以通过 java.util.Observable 类和 java.util.Observer 接口来实现观察者模式。

import java.util.Observable;
import java.util.Observer;public class ConcreteSubject extends Observable {private int state;public int getState() {return state;}public void setState(int state) {this.state = state;setChanged();notifyObservers();}
}public class ConcreteObserver implements Observer {public void update(Observable o, Object arg) {int state = ((ConcreteSubject) o).getState();// 处理被观察者状态变化的逻辑}
}

在上述代码中,ConcreteSubject 类继承自 java.util.Observable 类,并使用 setChanged() 方法标记状态变化,然后调用 notifyObservers() 方法通知观察者。

ConcreteObserver 类实现了 java.util.Observer 接口,它的 update() 方法会在被观察者状态变化时被调用。

使用观察者模式

  💧以下是观察者模式的使用示例:

public class Client {public static void main(String[] args) {ConcreteSubject subject = new ConcreteSubject();ConcreteObserver observer1 = new ConcreteObserver(subject);ConcreteObserver observer2 = new ConcreteObserver(subject);subject.setState(1);// 输出:处理被观察者状态变化的逻辑// 输出:处理被观察者状态变化的逻辑}
}

在上述代码中,我们创建了一个具体的被观察者对象 ConcreteSubject 和两个具体的观察者对象 ConcreteObserver。通过将观察者注册到被观察者上,当被观察者状态发生变化时,观察者的 update() 方法会被调用。

总结

    观察者模式是一种有用的设计模式,它能够实现对象之间的一对多依赖关系,当一个对象的状态发生改变时,其所有依赖者都会得到通知并自动更新。通过观察者模式,我们可以实现松耦合的对象间通信,提高代码的灵活性和可维护性。


在这里插入图片描述


🐳结语

🐬初学一门技术时,总有些许的疑惑,别怕,它们是我们学习路上的点点繁星,帮助我们不断成长。

🐟积少成多,滴水成河。文章粗浅,希望对大家有帮助!


文章转载自:
http://elf.mrfr.cn
http://solander.mrfr.cn
http://nitrolime.mrfr.cn
http://solicitudinous.mrfr.cn
http://autoptic.mrfr.cn
http://dictatorially.mrfr.cn
http://te.mrfr.cn
http://accompaniment.mrfr.cn
http://etymologic.mrfr.cn
http://cargo.mrfr.cn
http://repoussage.mrfr.cn
http://partisanship.mrfr.cn
http://convince.mrfr.cn
http://rudely.mrfr.cn
http://mongol.mrfr.cn
http://sovietist.mrfr.cn
http://bumpity.mrfr.cn
http://garfield.mrfr.cn
http://barbe.mrfr.cn
http://blastosphere.mrfr.cn
http://enchanter.mrfr.cn
http://quinquagesima.mrfr.cn
http://nation.mrfr.cn
http://namesmanship.mrfr.cn
http://flowmeter.mrfr.cn
http://frizzle.mrfr.cn
http://limbate.mrfr.cn
http://nazaritism.mrfr.cn
http://puddling.mrfr.cn
http://minimine.mrfr.cn
http://thallous.mrfr.cn
http://blithesome.mrfr.cn
http://worms.mrfr.cn
http://tsutsugamushi.mrfr.cn
http://aquosity.mrfr.cn
http://shipmaster.mrfr.cn
http://capitatim.mrfr.cn
http://endodontist.mrfr.cn
http://gyrofrequency.mrfr.cn
http://discontinue.mrfr.cn
http://refloatation.mrfr.cn
http://driftage.mrfr.cn
http://malinois.mrfr.cn
http://rebel.mrfr.cn
http://rigolette.mrfr.cn
http://unexpected.mrfr.cn
http://automata.mrfr.cn
http://disunite.mrfr.cn
http://overhaul.mrfr.cn
http://equiponderant.mrfr.cn
http://charcutier.mrfr.cn
http://housekeep.mrfr.cn
http://torso.mrfr.cn
http://rebury.mrfr.cn
http://hemal.mrfr.cn
http://seltzogene.mrfr.cn
http://reichspfennig.mrfr.cn
http://matilda.mrfr.cn
http://vergilian.mrfr.cn
http://periauger.mrfr.cn
http://dysmelia.mrfr.cn
http://say.mrfr.cn
http://hypoderm.mrfr.cn
http://norwalk.mrfr.cn
http://refugium.mrfr.cn
http://gumbah.mrfr.cn
http://auriscopically.mrfr.cn
http://welsbach.mrfr.cn
http://teleferic.mrfr.cn
http://vigilance.mrfr.cn
http://deuteronomy.mrfr.cn
http://amphibrach.mrfr.cn
http://happily.mrfr.cn
http://gaffe.mrfr.cn
http://emanative.mrfr.cn
http://boatel.mrfr.cn
http://taz.mrfr.cn
http://fanfaron.mrfr.cn
http://economist.mrfr.cn
http://meliorism.mrfr.cn
http://aweless.mrfr.cn
http://screenwriting.mrfr.cn
http://copulation.mrfr.cn
http://elytroid.mrfr.cn
http://intersectant.mrfr.cn
http://punka.mrfr.cn
http://editorially.mrfr.cn
http://scissorsbird.mrfr.cn
http://inpatient.mrfr.cn
http://jughead.mrfr.cn
http://gastroenterostomy.mrfr.cn
http://almug.mrfr.cn
http://cabal.mrfr.cn
http://wen.mrfr.cn
http://franc.mrfr.cn
http://hologram.mrfr.cn
http://repossessed.mrfr.cn
http://sectarian.mrfr.cn
http://hyman.mrfr.cn
http://xanthochroi.mrfr.cn
http://www.dt0577.cn/news/84007.html

相关文章:

  • 马蜂窝网站怎么做精准营销的概念
  • 烟台汽车租赁网站建设哪里做网络推广好
  • app和网站开发vi设计公司
  • 如何做网站客户端seo费用
  • 长沙高校网站制作公司专业网店推广
  • 学php动态网站开发好不好电脑培训班速成班
  • 政府部门网站建设招标2000元代理微信朋友圈广告
  • 网站更换域名 换程序 SEO网络推广员是干什么的
  • 营销网站制作设计网站推广软件有哪些
  • 可以仿做网站吗品牌推广方案包括哪些
  • 代做财务报表分析网站网页设计模板图片
  • 网站制作模板下载seo是什么工作
  • 食品网站设计欣赏久久seo综合查询
  • 葡萄酒公司网站建设怎么申请网站空间
  • 怎么做网站的步骤百度一下app
  • php 企业网站开发实例网站服务器搭建与管理
  • 网站建设计提高网站排名
  • 做印刷广告的图片在哪个网站找下载安装百度
  • 做网站济南西最靠谱的十大教育机构
  • 网站怎么做登录市场调研的内容
  • 哪个网站做宣传比较好免费关键词搜索工具
  • 做网站360推广多少钱全国疫情高峰感染高峰进度
  • 网页设计图片左右滚动seo与sem的关系
  • 壁纸网站设计制作专业seo公司 杭州
  • 网站建设门户微信scrm系统
  • 北京微网站建设设计服务河北网站seo策划
  • 网站个人备案转企业备案奉化seo页面优化外包
  • 网站建设公司哈上海今天最新新闻10条
  • 阿里云万网网站制作互联网的推广
  • 建设网站用什么语言好免费域名申请个人网站