网站所有分类中 点击箭头不出现下拉菜单万网创始人与慧聪网

diannao/2026/1/20 19:43:54/文章来源:
网站所有分类中 点击箭头不出现下拉菜单,万网创始人与慧聪网,wordpress那个主题收录好,成都旅游网站建设规划方案前言 实际业务开发过程中#xff0c;业务逻辑可能非常复杂#xff0c;核心业务 N 个子业务。如果都放到一块儿去做#xff0c;代码可能会很长#xff0c;耦合度不断攀升#xff0c;维护起来也麻烦#xff0c;甚至头疼。还有一些业务场景不需要在一次请求中同步完成业务逻辑可能非常复杂核心业务 N 个子业务。如果都放到一块儿去做代码可能会很长耦合度不断攀升维护起来也麻烦甚至头疼。还有一些业务场景不需要在一次请求中同步完成比如邮件发送、短信发送等。 就比如工作中实际遇到的,报告生成存库了,后面开发的时候又要加功能需要发送短信通知别人, 如果直接在报告存库的代码下面再写一百多行发送短信的代码,太臃肿了, 报告存库的功能和发短信的功能两者是独立的,没有必要把代码写在一堆里, 这个时候就可以用观察者模式. 但是我看完下面的代码好像还是不会用. 1.观察者模式模式简介 定义 观察者模式又被称为发布-订阅Publish/Subscribe模式属于行为型模式的一种它定义了一种一对多的依赖关系让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时会通知所有的观察者对象使他们能够自动更新自己。 观察者模式结构图 在观察者模式中有如下角色 Subject抽象主题抽象被观察者抽象主题角色把所有观察者对象保存在一个集合里每个主题都可以有任意数量的观察者抽象主题提供一个接口可以增加和删除观察者对象。ConcreteSubject具体主题具体被观察者该角色将有关状态存入具体观察者对象在具体主题的内部状态发生改变时给所有注册过的观察者发送通知。Observer抽象观察者是观察者者的抽象类它定义了一个更新接口使得在得到主题更改通知时更新自己。ConcrereObserver具体观察者实现抽象观察者定义的更新接口以便在得到主题更改通知时更新自身的状态。 2.观察者模式简单实现 观察者模式这种发布-订阅的形式我们可以拿微信公众号来举例假设微信用户就是观察者微信公众号是被观察者有多个的微信用户关注了程序猿这个公众号当这个公众号更新时就会通知这些订阅的微信用户。好了我们来看看用代码如何实现 抽象观察者Observer 里面定义了一个更新的方法 public interface Observer {public void update(String message); } 具体观察者ConcrereObserver 微信用户是观察者里面实现了更新的方法 public class WeixinUser implements Observer {// 微信用户名private String name;public WeixinUser(String name) {this.name name;}Overridepublic void update(String message) {System.out.println(name - message);}}抽象被观察者Subject 抽象主题提供了attach、detach、notify三个方法 public interface Subject {/*** 增加订阅者* param observer*/public void attach(Observer observer);/*** 删除订阅者* param observer*/public void detach(Observer observer);/*** 通知订阅者更新消息*/public void notify(String message); }具体被观察者ConcreteSubject 微信公众号是具体主题具体被观察者里面存储了订阅该公众号的微信用户并实现了抽象主题中的方法 public class SubscriptionSubject implements Subject {//储存订阅公众号的微信用户private ListObserver weixinUserlist new ArrayListObserver();Overridepublic void attach(Observer observer) {weixinUserlist.add(observer);}Overridepublic void detach(Observer observer) {weixinUserlist.remove(observer);}Overridepublic void notify(String message) {for (Observer observer : weixinUserlist) {observer.update(message);}} } 客户端调用 public class Client {public static void main(String[] args) {SubscriptionSubject mSubscriptionSubjectnew SubscriptionSubject();//创建微信用户WeixinUser user1new WeixinUser(杨影枫);WeixinUser user2new WeixinUser(月眉儿);WeixinUser user3new WeixinUser(紫轩);//订阅公众号mSubscriptionSubject.attach(user1);mSubscriptionSubject.attach(user2);mSubscriptionSubject.attach(user3);//公众号更新发出消息给订阅的微信用户mSubscriptionSubject.notify(刘望舒的专栏更新了);} }结果 杨影枫-刘望舒的专栏更新了 月眉儿-刘望舒的专栏更新了 紫轩-刘望舒的专栏更新了 3.使用观察者模式的场景和优缺点 使用场景 关联行为场景需要注意的是关联行为是可拆分的而不是“组合”关系。事件多级触发场景。跨系统的消息交换场景如消息队列、事件总线的处理机制。 优点 解除耦合让耦合的双方都依赖于抽象从而使得各自的变换都不会影响另一边的变换。 缺点 在应用观察者模式时需要考虑一下开发效率和运行效率的问题程序中包括一个被观察者、多个观察者开发、调试等内容会比较复杂而且在Java中消息的通知一般是顺序执行那么一个观察者卡顿会影响整体的执行效率在这种情况下一般会采用异步实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深圳网站制作公司深圳网站制作公司兰州官网seo分析

英语学习者语料库(书面语及口语)中国学习者语料库 CLEC(100万)广外、上海交大大学英语学习者口语语料库 COLSEC (5万) 上海交大香港科技大学学习者语料库 HKUST Learner Corpus 香港科技大学中国英语专业语料库 CEME (148万) 南京大学中国英语学习者口语语料库 SECCL (100万) 南…

织梦做的网站如何修改西宁网站建设开发

Java基础日常总结!!1. Java的字符类型采用的是Unicode编码方案,每个Unicode码占用( )个比特位 在java中一个unicode占2个字节(byte).一个字节等于8比特位(bit).所以每个Unicode码占用 16 个比特…

昆明优化网站排名河北企业自助建站

在实际的软件开发过程中,经常会遇到需要对比两个集合并找出它们之间的差异的情况。为了解决这个问题,我们可以编写一个Java工具类来完成这个任务。本文将介绍如何编写这样一个工具类,并提供详细的代码解释和使用示例。 问题描述 假设我们有两…

90后小姑娘做网站安阳哪里有学做网站的学校

目录 1、简介 2、环境准备 2.1 数据库服务器规划 2.2 安装mysql5.7.20 2.3 设置hostname和ip映射 3、创建复制环境 3.1 服务器host68.cn 3.1.1 配置/etc/my.cnf 3.1.2 服务器host68.cn上建立复制账号: 3.1.3 在mysql服务器host68.cn上安装group replicatio…

白山网站seo页面设计标准规范

<!-- 添加 FastJSON依赖 --> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.59</version> </dependency>

中国上市网络公司排名wordpress seo 自定义结构

这些天里工作的环境发生了一些微小的变化&#xff0c;可能以后对基层开发的程序员也会有更加具体的影响。上周参加 Open Party 时&#xff0c;重点听了《那些失败的项目们》&#xff0c;分析了一个项目的提出、实施&#xff0c;直到最后失败的过程。我也在想一个技术团队究竟应…

十大企业网站排行榜网站安全建设步骤

评价工科实力一个非常明显的指标就是学科实力&#xff0c;2017年公布的第四次学科评估结果就是最好的参考。下面就以学科评估排名全国5%的学科数作为评比基准&#xff0c;对国内主要高校的工科实力进行一个排名&#xff0c;结果如下&#xff1a;前3甲&#xff1a;清华大学、浙江…

mysql 网站 数据库网站开发公司网站官网

不可变性&#xff1a; String类是不可变的&#xff0c;即一旦创建了String对象&#xff0c;就不能修改它的值。每次对String对象的操作都会创建一个新的String对象&#xff0c;导致内存开销较大。 StringBuffer和StringBuilder类是可变的&#xff0c;它们允许修改已有的字符串…

惠州专业做网站科技公司排名

http请求分为两大类&#xff1a;普通http请求&#xff08;如百度请求&#xff09;和ajax请求&#xff08;跨域是出现在ajax请求&#xff09; 同源策略&#xff1a;在浏览器发起ajax请求时&#xff0c;当前的网址和被请求的网址协议、域名、端口号必须完全一致&#xff0c;目的是…

开源 html5网站模板汕头网站设计开发专业

在Django中实现文件上传功能主要涉及几个步骤。以下是一个基本的指南,用于在Django应用程序中设置文件上传: 设置模型 首先,你需要在模型中定义一个FileField或ImageField。对于图像,ImageField更为合适,因为它包含对图像大小调整和其他图像相关功能的验证。 python 复…

九度企业网站推广软件网页投放广告怎么收费

OpenAI的GPT-3、GPT-3.5和GPT-4模型基于用户输入的文本提示工作。有效的提示构造是使用这些模型的关键技能&#xff0c;涉及到配置模型权重以执行特定任务。这不仅是技术操作&#xff0c;更像是一种艺术&#xff0c;需要经验和直觉。本文旨在介绍适用于所有GPT模型的提示概念和…

我想在购物网站做代理建立网站小程序

正解又不会写&#xff0c;又懒得去想 只好每次考试大大暴力&#xff0c;维持一下生活了 ----------------------- P1337 [JSOI2004]平衡点 / 吊打XXX 题目描述 有n个重物&#xff0c;每个重物系在一条足够长的绳子上。每条绳子自上而下穿过桌面上的洞&#xff0c;然后系在一起。…

建设银行网站看不到e商有回定ip怎么做网站

标题&#xff1a;深入探究JVM&#xff1a;解密Java虚拟机的工作原理 摘要&#xff1a;本文将深入探究Java虚拟机&#xff08;JVM&#xff09;的工作原理&#xff0c;包括JVM的组成部分、类加载过程、运行时数据区域、垃圾回收机制以及即时编译器等。通过解密JVM的工作原理&…

中铁建设门户网站网站开发 安全验证

1. 前言正常Git仓库中应该尽量不包含数据库连接/AWS帐号/巨大二进制文件&#xff0c;否则一旦泄漏到Github&#xff0c;这些非常敏感信息会影响客户的信息安全已经公司的信誉。公司可能其它还有相关规定&#xff0c;如禁止私人邮件加入GIT仓库。如果违反这些规定&#xff0c;可…

禁止拿我们的网站做宣传企业宣传画册设计

前言&#xff1a;在日常使用linux系统过程中&#xff0c;安装服务后系统不会自动启动服务的。就算手动启动了服务&#xff0c;只是当前生效&#xff0c;一旦服务器重启后&#xff0c;系统不会自动启动这些服务。如果每次重启服务器都要自己手动启动这些服务&#xff0c;一台还阔…

网站评论怎么做的重庆搜索排名提升

打包python绘制玫瑰花_python生成玫瑰花-CSDN博客 这个链接的程序 隐藏 控制台窗口&#xff08;如果你的程序是GUI&#xff0c;不是控制台应用可以选用&#xff0c;比如本案例的送你玫瑰花就是白底的&#xff09; 报错的话&#xff0c;可能没有pyinstaller这个库 参考&#x…

建设银行查余额网站一个专门做试题的网站

GIL&#xff08;global interpreter lock&#xff09;&#xff0c;即全局解释器锁 在单核时代&#xff0c;崇尚优美、清晰、简单的 Python 之父选择在解释器层面实现了一把全局互斥锁&#xff0c;来保护 Python 对象从而实现对单核 CPU 的使用率&#xff0c;这种做法在单核时代…

企业组织网站建设方案wordpress评论表单

要求字典序的情况的话&#xff0c;爆搜 不要求的话 1:建图&#xff0c;有向边A--->B的意义为选择A则必须选择B&#xff0c;一般一个点的两种取值情况会拆点。 2:缩点。 3:建反向图&#xff0c;跑拓扑排序&#xff08;有说不用建再跑&#xff0c;但我不懂为什么&#xff09;。…

网站买流量是怎么做的建设生活app官方下载

什么是es(elasticsearch) Elasticsearch是一个开源的分布式搜索和分析引擎&#xff0c;它构建在Apache Lucene搜索引擎库之上。它提供了一个分布式多用户能力的实时搜索和分析引擎&#xff0c;能够处理大规模的数据。Elasticsearch被广泛用于构建全文搜索、日志分析、实时应用…

机械手表网站百度浏览器下载安装

目录 ​编辑 原码、反码、补码 1、正数 2、负数 3、二进制计算1-1 移位操作符 1、<<左移操作符 2、>>右移操作符 位操作符&、|、^、~ 1、&按位与 2、|按位或 3、^按位异或 特点 4、~按位取反 原码、反码、补码 1、正数 原码 反码 补码相同…