网站建设的目标是网站内容建设和运营工作

news/2025/10/1 16:18:40/文章来源:
网站建设的目标是,网站内容建设和运营工作,在线制作图片代码,四川网站建设企业网站制作文章目录 概念结构实例总结 概念 观察者模式#xff1a;定义对象之间的一种一对多的依赖关系#xff0c;使得每当一个对象状态发生改变时#xff0c;其他相关依赖对象都得到通知并被自动更新。 观察者模式是使用频率较高的一个模式#xff0c;它建立了对象与对象之间的依赖… 文章目录 概念结构实例总结 概念 观察者模式定义对象之间的一种一对多的依赖关系使得每当一个对象状态发生改变时其他相关依赖对象都得到通知并被自动更新。 观察者模式是使用频率较高的一个模式它建立了对象与对象之间的依赖关系当一个对象发生了改变自动会通知其他对象。发生改变的对象被称为观察目标被通知的对象被称为观察者。 当我们看到绿灯就会通过看到红灯就会停止行走红灯就是观察目标我们就是观察者红灯只有一个而我们是一群人也就是说一个目标可以对应多个观察者。 结构 观察者模式的类图如下 Subject(目标)目标也称为主题也就是被观察的对象。我们可以在目标中定义一个观察者集合它提供方法来增加或者删除观察者对象同时它最主要的方法是通知方法notify可以通知观察者。 ConcreteSubject(具体目标)它是目标的子类当它的状态发生改变时主要是用来向各个观察者发送通知。 Observer(观察者)观察者将对观察目标的改变做出反应观察者一般定义为接口。 ConcreteObserver(具体观察者)它是观察者的子类在具体观察者中维护了一个指向具体目标的引用。 实例 在某多人联机对战游戏中多个玩家可以加入同一战队组成联盟当战队中的一人遭到敌人攻击时将给所有的其他盟友发送通知盟友收到通知后将做出反应。 如果不用设计模式正常的链路是这样的联盟成员遭到攻击----通知给盟友----盟友做出反应这样的弊端是如果盟友有很多则每一个成员都需要进行关联耦合性太严重。加入观察模式的话以指挥部作为一个新的对象链路变成这样联盟成员遭到攻击----通知指挥部----指挥部通知所有盟友----盟友做出反应。 AllyControlCenter,指挥部中心充当抽象目标类 Data public abstract class AllyControlCenter {protected String allyName;protected ArrayListObserver players new ArrayList();public void join (Observer obs){System.out.println(obs.getName() 加入 this.allyName 战队);players.add(obs);}public void quit(Observer obs){System.out.println(obs.getName() 退出 this.allyName 战队);players.remove(obs);}public abstract void notifyObserver(String name); }ConcreteAllyControlCenter类充当具体目标类 Data public class ConcreteAllyControlCenter extends AllyControlCenter {public ConcreteAllyControlCenter(String allyName) {System.out.println(allyName 战队组建成功);this.allyName allyName;}Overridepublic void notifyObserver(String name) {System.out.println(this.allyName 战队紧急通知盟友 name 遭到敌人攻击);for (Observer player : players) {if (!name.equals(player.getName())) {player.help();}}} }Observer抽象观察者 public interface Observer {String getName();void setName(String name);void help();void beAttacked(AllyControlCenter acc);}Player,具体观察者 public class Player implements Observer {private String name;public Player(String name) {this.name name;}Overridepublic String getName() {return name;}Overridepublic void setName(String name) {this.name name;}Overridepublic void help() {System.out.println(坚持住 this.name 来救你);}Overridepublic void beAttacked(AllyControlCenter acc) {System.out.println(this.name 被攻击);acc.notifyObserver(name);} }客户端 public class Client {public static void main(String[] args) {AllyControlCenter allyControlCenter;allyControlCenter new ConcreteAllyControlCenter(联盟);Observer play1, play2, play3;play1 new Player(play1);allyControlCenter.join(play1);play2 new Player(play2);allyControlCenter.join(play2);play3 new Player(play3);allyControlCenter.join(play3);play1.beAttacked(allyControlCenter);}}打印结果 具体调用流程Player.beAttacked()— AllyControlCenter.notifyObserver()—Player.help() 另外,jdk 的util 包中自带观察者模式我们可以直接继承和实现这两个类使用起来更加方便。 总结 观察者模式的优点 1、表示层和数据逻辑层分离并抽象了更新的接口便于不同的表示层充当观察者角色。 2、在观察目标和观察者之间建立了一个抽象的耦合。观察者目标只需要维护一个抽象的观察者集合即可无需了解具体观察者。 3、简化了一对多系统的难度支持广播通信。 4、符合开闭原则增加新的观察者无需修改原代码。 观察者模式的缺点 1、观察者太多的话有性能问题。 2、如果观察者和观察目标之间存在循环依赖可能导致系统崩溃。 3、观察者模式没有相应的机制让观察者知道所观察的目标对象是怎么发生变化的仅仅是知道目标发生了变化。 适用环境 1、当一个抽象模型的一方面依赖另一方面时可以考虑观察者模式。 2、一个对象的改变导致多个对象发生变动时。 3、需要在系统中新建一个触发链A对象变动影响B对象B对象变动影响C对象。

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

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

相关文章

1数学建模模型分类

数学建模模型分类核心笔记 一、预测类模型 1. 定义 基于历史数据或已知现象,挖掘内在发展规律,对未来趋势或样本内未知属性进行推断的模型类型,核心是“数据驱动+规律推导”。 2. 关键分类(按数据量与预测范围)样…

网站建设昆山网站研发流程

1.1web基本 session 和 cookie 有什么区别? 存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。 安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。 容量和个数限制:…

企业网站 阿里云asp网站应用程序

1、符号运算符 ( ) [ ] . -> 圆括号 数组 成员选择(对象)——结构体、联合体 成员选择(指针)——结构体、联合体 2、符号运算符 - () -- * & …

企业做网站需要什么资料爱战网关键词挖掘

文章目录 服务端通过传入命令处理实现远程命令执行使用Windows编辑UDP客户端实现Windows远程控制Linux接收套接字的其他信息UDP套接字简单群聊服务端UDP套接字简单群聊客户端运行测试及分离输入输出 参考代码 服务端通过传入命令处理实现远程命令执行 『 Linux 』利用UDP套接字…

数学每日?题

遇到一些比较好的题会进行收录。范围:我会的知识点。已知二次函数 \(f(x)=ax^2+bx+c(b>a)\) 满足 \(\forall x \in \mathbb{R}, f(x) \ge 0\) 恒成立,求 \(\dfrac{b - a}{a + b + c}\) 的最大值。 已知的条件如下…

OpenSpeedy最新版下载,夸克百度网盘加速提速|游戏加速工具|官网入口

OpenSpeedy 是一款面向 Windows 平台的开源免费游戏变速工具,旨在通过修改游戏进程的时间函数实现加速或减速,从而突破原生帧率限制、提升单机游戏流畅度,甚至在部分情况下加速网盘下载。软件采用 Ring3 层 Hook 技…

详细介绍:深入理解 SPI:从定义到 Spring Boot 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:深入理解 SPI:从定义到 Spring Boot 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

RVC WebUI(Retrieval-based-Voice-Conversion-WebUI)配置 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

有哪些网站可以做h5莱芜十大首富

原标题:从安卓换到苹果到底是什么感受?最后一个让我彻底放弃了iPhone!iPhone X是近几年来苹果最具创新力的iPhone,然而高昂的售价让很多消费者望而却步。随着今年苹果秋季新品发布会的临近,苹果即将发布价格更低廉&…

个人资料库网站怎么做资源下载类网站源码

Java 中的并发包指的是 java.util.concurrent(简称 JUC)包和其子包下的类和接口,它为 Java 的并发提供了各种功能支持,比如: 提供了线程池的创建类 ThreadPoolExecutor、Executors 等;提供了各种锁,如 Lock、ReentrantLock 等;提供了各种线程安全的数据结构,如 Concur…

第一次软工作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546这个作业的目标 自我介绍,初…

Nginx核心配备详解:访问控制、用户认证与HTTPS部署

Nginx核心配备详解:访问控制、用户认证与HTTPS部署pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

深入解析:5. Prompt 提示词

深入解析:5. Prompt 提示词2025-10-01 15:59 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important;…

基于Python+Vue开发的婚恋交友管理系统源码+运行步骤

项目简介该项目是基于Python+Vue开发的婚恋交友管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于…

南通医院网站建设方案网站 mysql数据库 字符

一直以来玩各种开发板,焊接水平太差始终是阻碍我买性价比高的板子的最大原因。淘宝上好多芯片搭载上肥猪流板子是不包排针焊接的。终于下定决心要克服这个困难。不过,只是会焊接排针在高手面前最好不要说自己会焊锡,这应该是两码事。 首先上…

详细介绍:Python 编辑器:PyCharm

详细介绍:Python 编辑器:PyCharm2025-10-01 15:45 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impo…

2025 年搅拌机设备厂家 TOP 企业品牌推荐排行榜,盘点磁混凝系统 / 发酵罐 / 刮泥机 / 推进式 / 脱硫侧搅拌机公司推荐!

在当前工业生产领域,搅拌机作为关键设备,广泛应用于石化、化工、新能源、环保等多个行业,其性能与质量直接影响生产效率和产品品质。然而,随着市场需求的不断增长,搅拌机生产厂家数量持续增加,行业内产品质量参差…

福州市 2025 国庆集训 Day1 前三题题解

福州市 2025 国庆集训 Day1 前三题题解 别问为啥只有前三题,因为后面我不会…… Day1 题单 T1 旅行 传送门 注意到 \(P\) 非常小,所以可以考虑指数级别的做法。 考虑状压 dp。设 \(f_{s,u}\) 表示经过 \(P\) 内的点集…

Python常用数据类型详解:字符串、列表、字典全解析

在 Python 学习过程中,理解数据类型是基础也是关键。Python 的核心数据类型能够帮助开发者高效处理不同类型的数据,本篇文章将系统介绍三种最常用的数据类型:字符串(String)、列表(List)、字典(Dict),并结合…