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

23种设计模式-备忘录(Memento)设计模式

备忘录设计模式

  • 🚩什么是备忘录设计模式?
  • 🚩备忘录设计模式的特点
  • 🚩备忘录设计模式的结构
  • 🚩备忘录设计模式的优缺点
  • 🚩备忘录设计模式的Java实现
  • 🚩代码总结
  • 🚩总结

🚩什么是备忘录设计模式?

备忘录设计模式(Memento Pattern) 是一种 行为型设计模式,用于在不破坏对象封装性的前提下,捕获对象的内部状态,并在未来的某个时间点恢复到该状态。该模式可以帮助我们实现 撤销(Undo) 操作,常用于文本编辑器、事务管理等场景。

使用场景

  • 需要 保存和恢复对象的状态,比如 撤销/重做 功能

  • 需要 防止外部对象直接访问对象的私有状态,保持封装性

  • 需要 在历史记录中存储对象的多个状态,支持回溯

🚩备忘录设计模式的特点

  • 封装性:对象的状态被存储在备忘录中,避免外部访问

  • 状态恢复:允许对象恢复到之前的状态,支持回溯操作

  • 简化历史记录管理:可以存储多个历史状态,支持撤销、重做等功能

  • 解耦设计:原发器(Originator)与管理者(Caretaker)解耦,原发器只负责创建和恢复状态,管理者负责存储

🚩备忘录设计模式的结构

备忘录模式主要包含以下部分:

  • Originator(原发器):负责创建备忘录(Memento)并存储当前状态,支持从备忘录恢复状态

  • Memento(备忘录):存储原发器的状态,并提供恢复该状态的方法

  • Caretaker(管理者):负责存储多个备忘录对象,可以提供回溯功能

图例:在这里插入图片描述

🚩备忘录设计模式的优缺点

✅ 优点

  • 封装性好,外部对象无法直接访问对象的状态

  • 支持撤销和重做功能,适用于编辑器、事务管理等场景

  • 解耦原发器和管理者,增强了代码的可维护性

❌ 缺点

  • 内存消耗大,如果存储大量状态,可能会影响系统性能

  • 状态存储复杂,如果对象的状态较大,存储和恢复的成本较高

🚩备忘录设计模式的Java实现

代码地址:GitHub

  • 创建 Memento(备忘录) 类
/*** @author hanson* @description: 备忘录* @date 2025-03-25 22:57:26* @version: 1.0*/
public class Memento {// 备忘录private String state;public Memento(String state) {this.state = state;}public String getState() {return state;}
}
  • 创建Originator(原发器)
/*** @author hanson* @description: 原发器* @date 2025-03-25 22:56:35* @version: 1.0*/
public class Originator {// 原发器private String state;public void setState(String state) {this.state = state;}public String getState() {return state;}public Memento createMemento() {return new Memento(state);}public void setMemento(Memento memento) {state = memento.getState();}
}
  • 创建Caretaker(管理者)
/*** @author hanson* @description: 管理者* @date 2025-03-25 22:58:35* @version: 1.0*/
public class Caretaker {// 管理者private List<Memento> mementoList = new ArrayList<>();public void addMemento(Memento state) {mementoList.add(state);}public Memento getMemento(int index) {// 判断参数是否合法if (index >= 1 && index <= mementoList.size()) {return mementoList.get(index - 1);}return null;}public void showMemento() {int cnt = 1;// for (遍历对象类型 对象名 : 遍历对象)for (Memento memento : mementoList) {System.out.println("第" + cnt + "次备份,状态为:" + memento.getState());cnt++;}}
}
  • 测试备忘录模式
/*** @author hanso* @description: 测试备忘录模式* @date 2025-03-25 23:00:25* @version: 1.0*/
public class MementoPattern {public static void main(String[] args) {Caretaker caretaker = new Caretaker();Originator originator = new Originator();originator.setState("1024");Memento backup1 = originator.createMemento();caretaker.addMemento(backup1);originator.setState("2048");Memento backup2 = originator.createMemento();caretaker.addMemento(backup2);originator.setState("4096");Memento backup3 = originator.createMemento();caretaker.addMemento(backup3);System.out.println(originator.getState());caretaker.showMemento();Memento memento1 = caretaker.getMemento(2);originator.setMemento(memento1);System.out.println("根据第2次备份还原之后的状态为:" + originator.getState());}
}

📌 运行结果

在这里插入图片描述

🚩代码总结

  • Originator(原发器):负责创建备忘录,并存储和恢复状态

  • Memento(备忘录):存储状态,不对外暴露内部信息

  • Caretaker(管理者):管理多个备忘录对象,提供状态回溯功能

  • 支持多次状态存储与回溯,可用于撤销/重做功能

🚩总结

  • 备忘录设计模式 适用于 状态恢复撤销/重做 等场景

  • 解耦设计,原发器与管理者独立,避免外部访问对象状态

  • 支持历史记录管理,但需要注意 内存消耗问题

  • 广泛应用 于 文本编辑器事务管理游戏存档

✅ Java源码中的应用场景:

  1. 数据库事务管理:

    • 事务回滚(Rollback)

    • 事务日志(Transaction Log)

  2. Spring 事务管理(TransactionManager):

    • 通过事务日志(Transaction Log)来支持回滚

创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

在这里插入图片描述

相关文章:

23种设计模式-备忘录(Memento)设计模式

备忘录设计模式 &#x1f6a9;什么是备忘录设计模式&#xff1f;&#x1f6a9;备忘录设计模式的特点&#x1f6a9;备忘录设计模式的结构&#x1f6a9;备忘录设计模式的优缺点&#x1f6a9;备忘录设计模式的Java实现&#x1f6a9;代码总结&#x1f6a9;总结 &#x1f6a9;什么是…...

六十天Linux从0到项目搭建(第八天)(缓冲区、gitee提交)

一 缓冲区&#xff0c;C中有很多字符a. 可显字符 b.控制字符 在 C 语言 中&#xff0c;字符可以分为 可显字符&#xff08;Printable Characters&#xff09; 和 控制字符&#xff08;Control Characters&#xff09;&#xff0c;它们通常存储在 缓冲区&#xff08;Buffer&…...

QOpenGLWidget视频画面上绘制矩形框

一、QPainter绘制 在QOpenGLWidget中可以绘制,并且和OpenGL的内容叠在一起。paintGL里面绘制完视频后,解锁资源,再用QPainter绘制矩形框。这种方式灵活性最好。 void VideoGLWidget::paintGL() {glClear(GL_COLOR_BUFFER_BIT);m_program.bind();//绘制视频数据// 解绑VAOg…...

vue3 ts 封装axios,配置axios前置拦截器,让所有axios请求携带token

vue3 ts 封装axios,配置axios前置拦截器&#xff0c;让所有axios请求携带token http.tsapp.tsvue文件 http.ts import axios from axios // 引入axios import router from /router import Qs from qs import { ElMessage } from element-plusconst { prefixBasePath } requir…...

前端使用WPS WebOffice 做在线文档预览与编辑

先附上官网 WebOffice SDK 1、在下面这个地方找到jdk&#xff0c;然后下载 按照 2、只需要把jdk下载下来&#xff0c;放到项目中&#xff0c;然后引入到项目中就可以了&#xff0c;在wps 官网创建个应用&#xff0c;然后把appId放到代码中就可以了&#xff0c;等待后端把回调…...

在 CentOS 系统中开机自动执行 Shell 脚本

在 CentOS 系统中&#xff0c;可以通过以下方法设置开机自动执行 Shell 脚本。推荐使用 systemd 服务&#xff08;现代 Linux 系统的标准方式&#xff09;&#xff0c;也可以使用传统的 /etc/rc.local 方法。 方法 1&#xff1a;使用 Systemd 服务&#xff08;推荐&#xff09;…...

kotlin知识体系(四) : inline、noinline、crossinline 关键字对应编译后的代码是怎样的 ?

1. inline、noinline、crossinline 的作用 在 Kotlin 里&#xff0c;inline、noinline 和 crossinline 这几个关键字和高阶函数紧密相关&#xff0c;它们能够对高阶函数的行为进行优化和控制。本文接下来会详细介绍它们的作用和原理。 1.1 inline 关键字 inline 关键字用于修…...

Python电影市场特征:AR模型时间序列趋势预测、热图可视化评分影响分析IMDb数据|附数据代码

原文链接&#xff1a;https://tecdat.cn/?p41214 分析师&#xff1a;Zhiheng Lin 在数字时代&#xff0c;电影产业的数据分析已成为洞察市场趋势与用户偏好的重要工具。本专题合集聚焦印度电影市场&#xff0c;通过IMDb数据集&#xff08;IMDb Movies Dataset&#xff09;的深…...

【后端】【Django DRF】从零实现RBAC 权限管理系统

Django DRF 实现 RBAC 权限管理系统 在 Web 应用中&#xff0c;权限管理 是一个核心功能&#xff0c;尤其是在多用户系统中&#xff0c;需要精细化控制不同用户的访问权限。本文介绍如何使用 Django DRF 设计并实现 RBAC&#xff08;基于角色的访问控制&#xff09;系统&…...

使用docker部署springboot、Vue分离项目,部署到主路径

这几天写了一个小的应用&#xff0c;牵涉到了使用docker部署问题&#xff0c;中间遇到了一些小问题&#xff0c;此处记录下&#xff0c;为以后遇到类似的问题提供一些解决思路。 1、准备使用的镜像&#xff1a;mysql、redis、nginx、jdk。 镜像地址&#xff1a; docker pull s…...

大疆上云api直播功能如何实现

概述 流媒体服务器作为直播画面的中转站,它接收推流端的相机画面,同时拉流端找它获取相机的画面。整个流程如下: 在流媒体服务器上创建流媒体应用(app),一个流媒体服务器上面可以创建多个流媒体应用约定推拉流的地址。假设流媒体服务器工作在1935端口上面,假设创建的流…...

服务器数据恢复—Raid5热备盘同步中断的数据恢复案例

服务器数据恢复环境&#xff1a; 某公司一台存储上有一组由15块硬盘组建的raid5阵列。raid5阵列上层是一个xfs裸分区&#xff0c;起始位置是0扇区。 服务器故障&#xff1a; raid5阵列中有一块硬盘出现故障掉线&#xff0c;热备盘自动上线同步数据&#xff0c;数据同步还没有完…...

FFmpeg开发学习:AVFormatContext结构体

1.AvFormatContext结构体 是ffmpeg中用于处理多媒体文件的核心结构体之一&#xff0c;属于libavformat模块&#xff0c;主要负责描述一个多媒体文件或流的封装格式&#xff0c;用来打开&#xff0c;读取&#xff0c;写入&#xff0c;操作媒体文件&#xff08;如.MP4 .mkv .flv…...

Ceph集群2025(Squid版)导出高可用NFS集群(上集)

#创建一个CephFS 文件系统 ceph fs volume create cephfs02#创建子卷 ceph fs subvolumegroup create cephfs02 myfsg2#查看子卷 ceph fs subvolumegroup ls cephfs02[{"name": "myfsg2"} ]创建 NFS Ganesha 集群 #例子 $ ceph nfs cluster create <c…...

Python----计算机视觉处理(Opencv:图像边缘检测:非极大值抑制,双阈值筛选)

一、 高斯滤波 边缘检测本身属于锐化操作&#xff0c;对噪点比较敏感&#xff0c;所以需要进行平滑处理。这里使用的是一个5*5的高斯 核对图像进行消除噪声。 二、计算图像的梯度和方向 三、非极大值抑制 在得到每个边缘的方向之后&#xff0c;其实把它们连起来边缘检测就算完了…...

超微服务器主板重置ipmi登录密码

超微服务器主板重置ipmi登录密码 超微服务器的ipmi登录密码不对&#xff0c;需要重置但是bios内并没有找到可以设置的选项。 以下是解决办法&#xff1a; 安装IPMITOOL apt install ipmitool -y执行以下命令加载模块&#xff1a; modprobe ipmi_watchdog modprobe ipmi_po…...

【react18】react项目使用mock模拟后台接口

前后端分离项目&#xff0c;后端还没有接口的时候&#xff0c;前端可以使用mockjs的技术实行假数据的模拟。这里使用的是mock的库msw实现这个业务. MSW msw是mock的工具&#xff0c;官网地址是在这里 使用步骤 1.安装msw npm install mswlatest --save-dev2.新建存放mock接…...

阿里云国际站代理商:如何通过Serverless调用GPU资源?

1.采用支持GPU资源的Serverless系统 选择支持GPU资源的Serverless系统&#xff0c;如Dilu系统&#xff0c;它通过内省弹性&#xff08;introspectiveelasticity&#xff09;机制&#xff0c;提供细粒度和自适应的二维协同扩展机制&#xff0c;支持GPU资源按需分配。 2.系统…...

CI/CD(三) 安装nfs并指定k8s默认storageClass

一、NFS 服务端安装&#xff08;主节点 10.60.0.20&#xff09; 1. 安装 NFS 服务端 sudo apt update sudo apt install -y nfs-kernel-server 2. 创建共享目录并配置权限 sudo mkdir -p /data/k8s sudo chown nobody:nogroup /data/k8s # 允许匿名访问 sudo chmod 777 /dat…...

Ae 效果详解:音频波形

Ae菜单&#xff1a;效果/生成/音频波形 Generate/Audio Waveform 音频波形 Audio Waveform效果可以可视化音频信号&#xff0c;能以多种方式显示音频波形&#xff0c;包括沿开放或闭合的蒙版路径显示。 本效果适用于所有色深模式&#xff08;8-bpc、16-bpc、32-bpc&#xff09;…...

S7-1200对V90 PN进行位置控制的三种方法

S7-1200系列PLC通过PROFINET与V90 PN伺服驱动器搭配进行位置控制,实现的方法主要有以下三种: ? 方法一、在PLC中组态位置轴工艺对象,V90使用标准报文3,通过MC_Power、MC_MoveAbsolute等PLC Open标准程序块进行控制, 这种控制方式属于中央控制方式(位置控制在PLC中计算,驱…...

定制表单排序,react, sort

概要 在实际开发中&#xff0c;我们常常碰到&#xff0c;一个页面根据条件不同&#xff0c;其展示的表单项需要动态改变位置&#xff1b;但是又不想写重复代码&#xff1b;可以试一下以下方法&#xff1b; 效果 使用的技术 HtmlReact,useMemoES6的扩展运算 代码 import Re…...

Vue3中keep-alive缓存组件应用场景。

文章目录 一、KeepAlive是什么&#xff1f;二、基本使用1.例子2.keep-alive使用 三、其他属性3.1 包含/排除3.2 最大缓存实例数3.3 缓存实例的生命周期 总结 一、KeepAlive是什么&#xff1f; 是一个内置组件&#xff0c;它的功能是在多个组件间动态切换时缓存被移除的组件实例…...

测试用例`

1.什么是测试用例 测试⽤例&#xff08;Test Case&#xff09;是为了实施测试⽽向被测试的系统提供的⼀组集合&#xff0c;这组集合包含&#xff1a;测试环境、操作步骤、测试数据、预期结果等要素. 2.测试用例的万能公式(重点) 设计测试⽤例的万能公式&#xff1a; 功能测试界…...

React 中的错误边界(Error Boundaries),如何使用它们捕获组件错误

大白话React 中的错误边界&#xff08;Error Boundaries&#xff09;&#xff0c;如何使用它们捕获组件错误 在 React 里&#xff0c;错误边界就像是一个“小卫士”&#xff0c;专门负责在组件出现错误时挺身而出&#xff0c;避免整个应用因为一个小错误就崩溃掉。接下来我会详…...

往期项目shader着色器实践效果应用合集

1、管路混色 2、水管水流效果 3、水管流入到流完效果 4、加热冷却 两 色混色 示意 XX、毒蘑菇测试效果...

go-zero: sqlx 对timestamp 格式数据问题

1.问题背景 对于goctl自动生成的model代码文件&#xff0c;对于非null的时间数据列&#xff0c;一定会产生如下问题 deleted_at\": unsupported Scan, storing driver.Value type \u003cnil\u003e into type *time.Time" 例如以上的问题&#xff0c;不论是插入还…...

systemd-networkd 的 *.network 配置文件详解 笔记250323

systemd-networkd 的 *.network 配置文件详解 笔记250323 查看官方文档可以用 man systemd.network命令, 或访问: https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html 名称 systemd.network — 网络配置 概要 network.network 描述 一个纯…...

Axure项目实战:智慧城市APP(四)医疗信息(动态面板、选中交互应用)

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;智慧城市APP医疗信息模块 主要内容&#xff1a;医疗信息模块原型设计与交互 应用场景&#xff1a;医疗信息行业 案例展示&#xff1a; 案例视频&…...

机器学习正则化技术:Ridge、Lasso与ElasticNet全解析

机器学习中的正则化技术 在机器学习中&#xff0c;正则化技术&#xff08;如 Ridge 和 Lasso&#xff09;主要用于解决过拟合问题&#xff0c;通过限制模型复杂度提高泛化能力。以下是详细说明及实例代码&#xff1a; 一、正则化解决的问题 过拟合&#xff1a;模型在训练集表…...

【汽车传感系统架构:借助传感获取安全】

为了将车辆自动化提升到一个新的水平&#xff0c;设计人员研究了 LiDAR 等传感器选项的权衡&#xff0c;并着眼于传感系统架构。 本文引用地址&#xff1a;https://www.eepw.com.cn/article/202503/468584.htm 每年&#xff0c;约有 120 万人死于道路交通事故&#xff0c;还有…...

3.25-2request库

request库 一、介绍request库 &#xff08;1&#xff09;requests是用python语言编写的简单易用的http库&#xff0c;用来做接口测试的库&#xff1b; &#xff08;2&#xff09;接口测试自动化库有哪些&#xff1f; requests、urllib 、urllib2、urllib3、 httplib 等&…...

LangChain4j(1):初识LangChain4j

1 什么是LangChain和LangChain4j LangChain是一个大模型的开发框架&#xff0c;使用LangChain框架&#xff0c;程序员可以更好的利用大模型的能力&#xff0c;大大提高编程效率。如果你是一个lava程序员&#xff0c;那么对LangChain最简单直观的理解就是&#xff0c;LangChain…...

UMI-OCR Docker 部署

额外补充 Docker 0.前置条件 部署前&#xff0c;请检查主机的CPU是否具有AVX指令集 lscpu | grep avx 输出如下即可继续部署 Flags: ... avx ... avx2 ... 1.下载dockerfile wget https://raw.githubusercontent.com/hiroi-sora/Umi-OCR_runtime_linux/main/Do…...

python每日十题(9)

外存储器的容量一般都比较大&#xff0c;而且大部分可以移动&#xff0c;便于在不同计算机之间进行信息交流。外存储器中数据被读入内存储器后&#xff0c;才能被CPU读取&#xff0c;CPU不能直接访问外存储器。本题答案为A选项。 进程是指一个具有一定独立功能的程序关于某个数…...

Jenkins最新版,配置Gitee私人令牌和Gitee凭证

jenkins 配置Gitee私人令牌和凭证 jenkins 版本&#xff1a;Jenkins 2.492.2 Gitee配置 Jenkins配置gitee插件&#xff0c;需要先申请gitee私钥。 安装gitee插件 申请Gitee私人令牌&#xff0c;后面还需要添加凭证。 测试链接&#xff0c;并保存 配置凭证...

AI 生成内容(AIGC):从文本到视频的完整流程

近年来&#xff0c;AI 生成内容&#xff08;AIGC, AI-Generated Content&#xff09; 迅速发展&#xff0c;从文本、图片到音频、视频&#xff0c;AI 在创意内容生成方面展现出了惊人的能力。AIGC 不仅提升了内容创作效率&#xff0c;还降低了成本&#xff0c;使得普通用户也能…...

【漏洞复现】Apache Tomcat partial PUT文件上传反序列化漏洞复现(CVE-2025-24813)

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 0x00 免责声明 本文所述漏洞复现方法仅供安全研究及授权测试使用&#xff1b;任何个人/组织须在合法合规…...

Spring JDBC Template与事务管理:基于XML与注解的实战指南

摘要 本文深入解析Spring JDBC Template与事务管理的核心技术&#xff0c;结合XML配置与注解方式两种主流方案&#xff0c;通过转账案例完整演示数据库操作与事务管理的最佳实践。文章涵盖JDBC Template的核心用法、事务配置语法、常见问题及性能优化建议&#xff0c;帮助开发…...

自动化测试selenium(Java版)

1.准备工作 1.1.下载浏览器 自动化测试首先我们要准备一个浏览器,我们这里使用谷歌(chrome)浏览器. 1.2.安装驱动管理 每一个浏览器都是靠浏览器驱动程序来启动,但是浏览器的版本更新非常快,可能我们今天测试的是一个版本,第二天发布了一个新的版本,那么我们就要重构代码,很…...

【13】Ajax爬取案例实战

目录 一、准备工作 二、爬取目标 三、初步探索&#xff1a;如何判断网页是经js渲染过的&#xff1f; 四、爬取列表页 4.1 分析Ajax接口逻辑 4.2 观察响应的数据 4.3 代码实现 &#xff08;1&#xff09;导入库 &#xff08;2&#xff09;定义一个通用的爬取方法…...

tar包部署rabbitMQ

部署erlang&#xff1a; 有网使用&#xff1a; sudo apt-get update sudo apt-get install libncurses5-dev libncursesw5-dev sudo yum install ncurses-devel 无网使用 tar zxvf ncurses.tar.gz mkdir ncurses cd ncurses-6.3/ ./configure --with-shared --without-debu…...

SpringMVC请求与响应深度解析:从核心原理到高级实践

一、SpringMVC架构与核心组件剖析 SpringMVC是基于Java的MVC设计模型实现的轻量级Web框架&#xff0c;其核心架构围绕前端控制器模式构建。以下是核心组件及其作用&#xff1a; DispatcherServlet 作为前端控制器&#xff0c;所有请求首先到达此处。它负责请求分发、协调组件协…...

CentOS 8 安装 Redis 全流程指南:从基础部署到远程安全配置

一、环境准备 本文以 CentOS 8.5 为例&#xff0c;演示 Redis 的安装、密码设置及远程连接配置。在开始前&#xff0c;请确保&#xff1a; 已通过 SSH 连接至服务器&#xff08;建议使用 Root 权限&#xff09;系统已联网基础工具包已安装&#xff1a;sudo dnf update -y &am…...

【机器学习】使用Python Spark MLlib进行预测模型训练

Spark MLlib 是 Spark 的机器学习 (ML) 库。它的目标是使实用的机器学习变得可扩展且易于使用。从高层次上讲&#xff0c;它提供了以下工具&#xff1a; ML 算法&#xff1a;常见的学习算法&#xff0c;如分类、回归、聚类和协同过滤特征化&#xff1a;特征提取、转换、降维和…...

简单聊聊Oracle和MySQL数据库的区别和使用场景

对于IT的技术人员&#xff0c;MySQL是非常熟悉的开源数据库&#xff0c;在各个行业被广泛应用。但是对于Oracle数据库&#xff0c;很多专业的IT从业人员不太了解&#xff0c;今天就来聊一聊Oracle和MySQL的一些区别。 1. 使用场景 首先MySQL是在各种IT公司或者非IT公司广泛应用…...

qt QOffscreenSurface详解

1、概述 QOffscreenSurface 是 Qt 中用于离屏渲染的一个类。它允许在不直接与屏幕交互的情况下进行 OpenGL 渲染操作&#xff0c;常用于生成纹理、预渲染场景等。通过 QOffscreenSurface&#xff0c;可以在后台创建一个渲染表面&#xff0c;进行绘制操作&#xff0c;并将结果捕…...

【软件测试】:软件测试实战

1. ⾃动化实施步骤 1.1 编写web测试⽤例 1.2 ⾃动化测试脚本开发 common public class AutotestUtils {public static EdgeDriver driver;// 创建驱动对象public static EdgeDriver createDriver(){// 驱动对象已经创建好了 / 没有创建if( driver null){driver new EdgeDr…...

springboot使用netty做TCP客户端

1、服务端文档说明 ## 1. 概述本文档描述了Socket模拟器的通信协议实现细节&#xff0c;包括数据包格式、字节序、编码方式等信息。## 2. 通信基础### 2.1 连接方式 - 协议类型&#xff1a;TCP - 网络层&#xff1a;IPv4 (AddressFamily.InterNetwork) - 传输方式&#xff1a;流…...

【NLP 49、提示工程 prompt engineering】

目录 一、基本介绍 语言模型生成文本的基本特点 提示工程 prompt engineering 提示工程的优势 使用注意事项 ① 安全问题 ② 可信度问题 ③ 时效性与专业性 二、应用场景 能 ≠ 适合 应用场景 —— 百科知识 应用场景 —— 写文案 应用场景 —— 解释 / 编写…...