25.2.6小记

news/2025/2/6 17:27:40/文章来源:https://www.cnblogs.com/Ryanjxy/p/18701069

控制反转

今天听课的时候对于这个概念听的有点云里雾里的,在这里重点解释一下。

反转控制(Inversion of Control,IoC)可以用一个生活中的比喻来理解:

传统模式:你主动控制一切
想象你是一个顾客去餐馆吃饭。在传统模式下,你需要:

自己走到厨房门口喊:“我要点菜!”

盯着厨师做菜,催促他快点。

菜做好了,自己跑去端回来。

整个过程你完全掌控流程,但非常繁琐,且需要全程参与。

反转控制模式:交给“系统”来通知你
而在反转控制模式下:

你坐下来,告诉服务员:“菜做好了叫我一声”。

你不再关心厨师什么时候做菜、怎么通知你。

当菜做好时,服务员主动通知你,你只需处理“端菜”这个动作。

这时,流程的控制权从你(调用者)转移到了服务员(框架/系统)。

对应到代码中的例子
你的按钮监听器代码就是一个典型反转控制的例子:

btnStep.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // 系统在按钮点击时自动调用这个方法System.out.println("按下啦!");step();frame.repaint();}
});

传统模式:你需要写一个死循环不断检查按钮是否被点击(比如 while(true) 轮询)。

反转控制:你告诉按钮:“被点击时叫我一声”,然后系统负责在事件发生时触发你的代码。

即其字面意思理解(反转控制):本来正常情况下是由写代码的人来写出相应的控制代码,但现在则是系统帮助你调用控制检测,在恰当的时间告诉你就完了。

内部类

1.在别的类里面的类叫做内部类(是一个内部的成员 )
2.在函数内部的类

有成员的权力:访问其他成员或者成员函数

在这里相当于定义了一个新的类,这个类实现了ActionListener接口

//匿名类btnStep.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e){System.out.println("按下啦!");step();frame.repaint();}});

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

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

相关文章

AI 场景下,函数计算 GPU 实例模型存储最佳实践

本文将对函数计算的 GPU 模型存储的优缺点及适用场景进行对比分析,以期为您的模型存储决策提供帮助。作者:有松 当前,函数计算 FC 已被广泛应用在各种 AI 场景下,函数计算支持通过使用容器镜像部署 AI 推理应用,并且提供多种选项来访问训练好的模型。为了帮助开发者高效地…

Docker快速部署Zabbix7.0教程

安装Docker 本教程基于Centos7。其余Linux发行版操作理论上无特别差异。#关闭Selinux#临时关闭setenforce 0#永久关闭sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config#关闭防火墙(方便测试)systemctl stop firewalld#安装Docker#执行如下命令,即可自动D…

10 测试用例

18.1 测试用例计划的目标 仔细计划测试用例,编写 xmind组织,有效的审查和实用 重复性,方便重复原有的测试 跟踪计划多少个测试用例? 最终执行了多少测试用例? 多少通过? 多少失败? 被忽略的测试用例?测试(或不测试)证实,测试用例计划提供了证明测试内容的手段18.2 测…

数字化时代,中小企业如何选对团队协作工具?

在团队协作工具市场竞争日益激烈的今天,板栗看板凭借其在安全性、易用性和成本效益方面的核心竞争力,成为了中小企业私有化部署的最佳选择之一。无论是数据安全的保障、简洁高效的设计,还是灵活的定价策略,板栗看板都充分考虑了中小企业的实际需求。如果你正在寻找一款既安…

如何蒸馏 Deepseek-R1

如何蒸馏 Deepseek-R1 深度学习模型已经彻底改变了人工智能领域,但其庞大的规模和计算需求可能成为现实世界应用的瓶颈。模型蒸馏是一种强大的技术,通过将知识从大型复杂模型(教师)转移到较小、更高效的模型(学生)来解决这一挑战。 在这篇博客中,这里将介绍如何使用 LoR…

UU 跑腿云原生化,突围同城配送赛道

我们起初是把业务部署在 IDC,但经历过频繁的服务器网线意外断掉,震网病毒在无通知的情况下封禁一批端口,其中包含数据库 alwayson 的端口,导致大量的同步日志挤压,最终数据库崩溃,无法启动。这些都严重制约了我们业务的发展,于是真正决定要开始上云。作者:袁沼&望宸…

UUbox-FastCMD:windows下自定义快捷指令

【快捷指令 UUbox-fastcmd】 windows版,绿色免费免安装。 适用于PC端经常需要切换工作场景的需求,可以将高频次操作自定义位快捷文字指令。 主页面:【下载地址】https://files.cnblogs.com/files/blogs/837238/UUbox-FastCMD_V0.1.rar?t=1738832053&download=true 【功…

微软发布基于PostgreSQL的开源文档数据库平台DocumentDB

我们很高兴地宣布正式发布DocumentDB——一个开源文档数据库平台,以及基于 vCore、基于 PostgreSQL 构建的 Azure Cosmos DB for MongoDB 的引擎。过去,NoSQL 数据库提供云专用解决方案,而没有通用的互操作性标准。这导致对可互操作、可移植且完全支持生产就绪的文档数据存储…

CTFShow-Web151:文件上传漏洞

CTFShow-Web151:文件上传漏洞 🛠️ Web151 题解 本题考察 文件上传漏洞,仅在前端进行了文件类型验证,允许上传 .png 图片文件。我们可以通过抓包修改文件后缀的方式绕过限制并获取 WebShell。 🔍 源码分析 在 upload.php 代码中,我们发现了以下 HTML 代码片段: <bu…

云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用

通过函数计算 FC 一键部署 Flux 模型,快速生成毛茸茸萌宠风格图像。我们将为您提供预置的工作流文件+内置大模型+Lora 模型,让您基于函数计算部署 ComfyUI 快速体验AI生图。如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地…

标准化管理数字化转型的实践与价值

在当下数字化转型的汹涌浪潮中,企业所处的竞争环境变得愈发复杂且瞬息万变。 标准化管理作为企业实现高质量发展的稳固基石,正切实面临着前所未有的机遇与严峻挑战。 从机遇层面来看,数字化技术的迅猛发展为标准化管理带来了全新的手段和方法,使管理效率和精准度提升成为可…

JS-52 定时器之setTimeout()

JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout和setlnterval()这两个函数来完成。他们向任务队列添加定时任务 setTimeout函数用来指定某个函数或某段代码,在多少毫秒之后执行。它返回一个整数,表示定时器的编号,以后可以用来取消这个定时器。…