登录社区云,与社区用户共同成长
邀请您加入社区
Agent设计模式之:Reflection
在使用命令模式时首先要定义一个命令接收和执行者Receiver,接着定义一个具体的命令ConcreteCommand实例,并将命令接收者实例设置到实例中,然后定义一个命令的调用者Invoker实例,并将命令实例设置到实例中,最后调用命令调用者的action(),将命令发送出去,在命令接收者收到数据后会执行相关命令,这样就完成了命令的调用。中介者模式又叫作调停模式,是迪米特法则的典型应用。同时,状态
本文详细拆解了五大 AI Agent 设计模式的核心定义与全量软件工程落地场景,在实际项目开发中,可根据业务复杂度灵活组合选型:简单工具类、单次执行任务:优先使用工具调用模式代码生成、文档编写、需要提质纠错场景:叠加反射模式多步骤、复杂迭代、排查攻坚场景:搭配规划分解模式长期项目、私有知识库、个性化迭代:接入记忆检索模式大型系统、全流程交付、多岗位协同:采用多智能体协作模式。
1、一个类只有一个实例2、提供一个全局访问点3、禁止拷贝。
如果你写过代码,一定听过设计模式(Design Pattern)——单例、工厂、观察者、策略……它们不是「新技术」,而是**「前人踩了无数坑之后,总结出来的可复用的结构套路」**。比如「工厂模式」,解决的是「我不想在每个地方都new,想让创建对象的逻辑集中管理」这个问题。它没有新语法,只是一种组织代码的结构。Agent 设计模式,是同一套思想,搬到了「大模型应用」的领域。Agent 设计模式,就是
命令模式将操作封装成对象,实现请求与执行的解耦,支持撤销、排队等功能。核心在于通过"命令对象"记录操作细节,使请求可存储、传递和管理。典型应用包括订单操作撤销、线程池任务、事务处理等场景,提升系统灵活性与可扩展性。
本文深入解析状态模式(State Pattern),通过与策略模式的对比,揭示其核心思想:对象行为随内部状态变化而改变,且状态间按规则流转。文章以订单生命周期为例,展示传统if-else判断状态的弊端,进而提出状态模式的解决方案——将每个状态封装为独立类,自主管理行为与状态转移。关键区别在于:策略模式是平行选择算法,状态模式则是链式状态流转。状态模式包含三大角色:上下文(Context)、抽象状态
抽象工厂用于创建一组相互配套、属于同一个产品族的对象,保证成套资源统一创建,实现上抽象工厂定义整套对象创建接口,具体工厂产出完整一套相关实体,游戏开发中适用于不同阵营套装(人族装备 / 魔族装备)、不同风格 UI 套件、不同主题特效组、不同关卡配套怪物 + 道具组合。public:public:public:void ShowWeapon() override { cout << "人族长剑" <
设计模式核心价值嵌入式推荐场景资源消耗(CPU/RAM)单例模式唯一性管理系统配置、日志、唯一外设极低工厂模式创建与使用分离多型号传感器/屏幕驱动抽象低(仅函数指针)观察者模式同步一对多通知按键触发联动、简单中断分发低(维护回调数组)状态模式复杂状态逻辑解耦通信协议、菜单、电源管理中(需维护多个状态结构体)发布-订阅异步完全解耦带RTOS的多任务通信(队列)较高(需RAM做消息队列)适配器模式接口
异步流水线把一次请求的处理拆成多个阶段(Stage),每个阶段是一个异步任务。数据像在工厂流水线上一样,从上一个阶段产出后,立刻流入下一个阶段。各阶段之间通过队列或管道解耦,既能并行处理,又保持逻辑清晰。原始输入 → 清洗 → 分块 → 向量化 → 检索 → 组装上下文 → LLM 调用 → 返回每一「→」都是一个可替换的管道节点。策略模式定义一系列算法,把它们封装成独立的类或函数,并让它们可以互
这篇文章介绍了适配器模式的核心思想与实现方式。适配器模式是一种结构型设计模式,它通过包装一个对象来改变其接口形式,使其能够与原本不兼容的接口协作,而无需修改双方代码。文章以第三方物流API对接为例,展示了对象适配器(组合实现)和类适配器(继承实现)的具体代码,并对比了两者的优缺点,推荐优先使用更灵活的对象适配器。此外,文章还探讨了适配器在标准库和Spring框架中的应用场景,并与其他包装模式(装饰
摘要 外观模式通过为复杂子系统提供一个统一的简化接口,降低调用方与子系统间的耦合度。该模式的核心思想是引入一个"门面类"来封装多个子系统的交互逻辑,对外仅暴露简单易用的方法。以餐厅点餐为例,顾客只需与服务员交互,无需了解后厨的复杂运作流程。 在代码实现上,外观模式解决了调用方需要直接操作多个子系统、管理复杂调用顺序的问题。通过集中编排逻辑到一个门面类中,调用方只需与单一接口交互,显著降低了系统复杂
从这一篇开始,我们离开"对象怎么造出来"(创建型),进入结构型七个模式,几乎都是在玩"包装"和"组合"的艺术。我们从其中实战出镜率最高的一个开场——。它是 Spring AOP 的底层基石,几乎每个用过 Spring 的人都在享受它的红利,却未必知道它的原理。代理的思想在生活里随处可见:你买房不直接对接房东,而是找中介;明星不亲自谈商演,而是通过经纪人。
本文通过烧烤店点餐的案例,生动讲解了命令模式的设计与实现。作者将服务员、厨师和顾客分别对应到命令模式中的Invoker、Receiver和Client角色,用Java代码实现了点餐、记录和烹饪的完整流程。重点分析了命令模式通过封装请求为对象,实现客户与执行者的解耦,支持请求排队和撤销操作的特点。文中还探讨了设计过程中的思考,如如何正确分配职责、类图设计等,最后提出两个待解决的问题:服务员职责是否单
复杂智能体任务通常包含多个可以同时执行的子任务,而不是一个接一个地串行处理。此时就需要并行化设计模式。并行化是指同时执行多个组件,比如 LLM 调用、工具使用,甚至整个子智能体。与等待上一步完成再开始下一步不同,并行执行允许独立任务同时运行,大幅缩短可拆分任务的整体执行时间。
本文是GoF设计模式系列的前置篇,介绍了面向对象设计的七大核心原则,重点解析SOLID原则(单一职责、开闭原则、里氏替换、接口隔离、依赖倒置)及其应用场景。通过典型代码对比,展示了违反原则的"面条代码"与遵循原则的优化方案:如将UserService按职责拆分、用策略模式实现支付扩展、通过依赖注入解耦数据库访问等。文章指出这些原则能提升代码的可维护性、扩展性和复用性,但也强调要避免过度设计,合理把
这份面试总结比较多,就不一一的详细介绍了,粗略的将主要内容展示一下,其中含有 20+的知识点:目录总览目录详览基础篇JVM 篇多线程&并发篇Spring 篇MyBatis 篇SpringBoot 篇MySQL 篇SpringCloud 篇Dubbo 篇Nginx 篇MQ 篇Linux 篇Zookeeper 篇Redis 篇分布式篇网络篇设计模式篇maven 篇ElasticSearch 篇tomc
2023年,我所在的公司启动了一个纱线MES(制造执行系统)的研发项目,旨在为国内纱线工厂提供SaaS化服务,助力其实现数字化转型与智能化升级。该系统需覆盖纱线生产从清花、梳棉、并条、精梳、粗纱、细纱到络筒的全流程工序,核心功能包括基础管理、数据接入、工单排产、数字孪生、工资计算、智控中心与数据分析等模块。我在该项目中担任系统架构设计师,主导整体架构设计工作。系统采用微服务架构,应用层基于Spri
编译器Compile:可以扫描和解析每个节点的相关指令(v-model,v-on等指令),如果节点存在v-model,v-on等指令,则解析器Compile初始化这类节点的模板数据,使之可以显示在视图上,然后初始化相应的订阅者(Watcher)。数据劫持:当将一个普通js的对象作为vue实例的data项,vue将遍历此对象的所有property并通过Object.defineProperty的ge
单例模式:确保类只有一个实例的设计模式 单例模式是GoF 23种设计模式中的一种创建型对象模式,用于确保一个类只有一个实例,并提供全局访问点。本文概述了单例模式的六种实现方式及其特点: 懒汉式(线程不安全):简单但线程不安全 懒汉式(线程安全):加锁保证安全但性能差 饿汉式:类加载时创建,简单且线程安全 双检锁(DCL):延迟加载+线程安全,需volatile防止指令重排 静态内部类:利用类加载机
【软考设计模式】中介者模式:网状交互的解耦与集中调度精讲
【软考设计模式】状态模式:状态驱动行为自动转换与代码填空精讲
作用:隔离对象创建逻辑,使用者只关心产品,不关心 new 细节简单工厂:快速开发,产品少;工厂方法:易扩展,产品多表格模式类型核心作用核心关键词单例创建型全局唯一实例私有构造、静态实例工厂创建型统一创建对象,隔离 new产品基类、工厂生产策略行为型动态替换平行算法Context 持有策略,外部切换状态行为型根据内部状态自动切换逻辑状态内部流转、状态机观察者行为型一对多消息通知发布 - 订阅、广播更
本文摘要: 建造者模式是GoF设计模式中的创建型对象模式,用于解决复杂对象的构造问题。它将对象构建过程与表示分离,通过专门建造者逐步组装,避免构造函数参数爆炸和构造顺序错误。文章以KFC套餐为例,展示完整实现:定义食物条目和包装接口,实现具体包装和抽象食物类,创建汉堡和饮料的具体产品,最后通过MealBuilder构建不同套餐。建造者模式适用于构造函数参数过多、参数有依赖关系、需要不可变对象或产品
本文将系统展示:如何用纯 C 实现面向对象三大特性 + SOLID 五大原则 + 6 种经典设计模式。
本文总结了Android开发中常用的设计模式,分为创建型和结构型两类。创建型模式包括单例模式(推荐静态内部类实现)、工厂模式(用于ViewModel等场景)、建造者模式(如AlertDialog.Builder)和依赖注入(Dagger2/Hilt)。结构型模式介绍了适配器模式(如RecyclerView.Adapter)。每种模式都通过典型应用场景、代码示例和优缺点对比进行说明,帮助开发者根据实
C++面试核心要点摘要(148字) 本文系统梳理C++面试核心知识点,涵盖:1)基础语法(const/static/指针引用区别);2)面向对象(多态实现/虚函数表/菱形继承);3)内存管理(RAII/智能指针/深浅拷贝);4)STL容器(vector扩容/unordered_map原理);5)多线程(线程安全/锁机制);6)设计模式(单例/工厂模式实现);7)编译链接(符号解析/内存布局);8)
类交互的一个通常例子是:一个类应该(观察者,Observer)被通知,当被观察者(Subject)的某些东西改变了。装饰模式:一种动态地往一个类中添加新的行为的设计模式,通过使用修饰模式,可以在运行时扩充一个类的功能。原理是:增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用到新功能的地方,它可以直接调用原来的类中的方法。
迭代器模式(`Iterator Pattern`)是一种**行为型设计模式**,核心思想是**提供一种统一的方式来顺序访问一个聚合对象中的各个元素,而不暴露该对象的内部表示**。
例如:对form内的元素,不考虑页面设计的情况下,一般就剩下input了,对于这些input都有name和value的属性,因此可以将这些input元素作为form对象的成员组合起来,form对象提供对外的接口,便可以实现一些简单的操作,比如设置某个input的value,添加/删除某个input等等。------------------------------------------ 正文开始
在做网球球员多目标跟踪项目时,我希望项目能支持不同的跟踪方案。tracks.csv如果每新增一种算法,就去修改主流程代码,会导致代码越来越乱。这个场景就很适合使用。
本文讲解了工厂模式的核心思想与使用边界,详述简单工厂、工厂方法、抽象工厂三种模式的演进逻辑与实现差异,结合实战案例剖析优缺点与选型场景,区分易混设计模式,补充框架落地应用,针对工程常见缺陷给出优化方案,梳理工厂模式落地规范,构建完整的工厂创建型模式知识体系。
【软考设计模式】抽象工厂模式:产品族构建与代码填空精讲
JVM 底层禁止反射枚举构造方法,天然杜绝反射、序列化、多线程问题。
原型模式把“创建一个新对象”变成“复制一个已经配置好的样板”。它像关卡编辑器里的复制粘贴:设计师先做出一只带属性、掉落、AI 参数的怪物样本,生成器以后只负责克隆。C# 里的浅拷贝很诱人,但游戏对象往往包含列表、引用、资源句柄。原型适合“从样板派生实例”,但不适合隐藏复杂生命周期。对象需要注册系统、申请资源、绑定事件时,克隆后仍要有清晰的初始化阶段。原型模式让对象自己知道如何复制自己,生成器只依赖
观察者模式是一种行为设计模式,用于定义对象间的一对多依赖关系。当主题对象状态改变时,所有依赖它的观察者都会自动收到通知并更新。本文以气象监测系统为例,说明传统写法会导致紧密耦合,而观察者模式通过"订阅-通知"机制解耦主题和观察者。 文章详细介绍了观察者模式的四个角色(主题接口、具体主题、观察者接口、具体观察者),并通过UML类图展示了它们的关系。重点讲解了"拉模型"实现方式:主题通知时将自身传给观
本文介绍了五种常见设计模式的C++实现:1. 单例模式:保证全局唯一实例,提供饿汉式(线程安全但启动即加载)和懒汉式(延迟加载需双重检查锁)两种实现。2. 简单工厂模式:通过静态方法根据参数创建不同产品,实现简单但违反开闭原则。3. 工厂方法模式:每个产品对应专属工厂,符合开闭原则但会导致类数量增加。4. 抽象工厂模式:创建产品族(相关联的多个产品等级),便于整套产品切换但扩展产品等级困难。5.
本文介绍观察者模式"发布-订阅、事件驱动"的核心思想,以 Java代码演示如何实现被观察者与观察者的解耦架构。
本文系统介绍了软件设计模式的三大类型(创建型、结构型、行为型)及其核心模式。重点讲解了创建型模式中的五种常用模式:简单工厂模式(封装对象创建逻辑)、工厂模式(支持多维度扩展)、抽象工厂模式(解决产品族兼容问题)、单例模式(全局唯一实例)和建造者模式(复杂对象构造)。每种模式都通过代码示例说明其核心思想、适用场景和优缺点,并强调设计原则(如开闭原则、单一职责原则)在模式设计中的重要性。
一个具体产品通常对应一个具体工厂类。创建对象的职责进一步下沉到子类。更符合开闭原则,扩展新产品更方便。一个具体工厂负责创建一组相关产品。强调“产品族”的概念。能保证同一系列产品风格一致。如何更合理地创建对象。简单工厂适合小型、产品类型较少的场景。工厂方法适合单个产品维度不断扩展的场景。抽象工厂适合需要成套创建关联产品的场景。学习这三种模式时,不要只背定义,更重要的是理解它们分别在解决什么问题。只要
文章摘要 装饰器模式是一种结构型设计模式,允许动态地为对象添加功能而不改变其结构。它通过组合代替继承,解决了类爆炸问题,适用于需要灵活扩展功能的场景。模式包含四个核心角色:抽象组件、具体组件、抽象装饰器和具体装饰器。示例展示了如何给形状添加颜色功能,通过嵌套装饰器实现多层次增强。实际应用中,装饰器模式可用于拦截式修改(如SpringMVC)或链式增强(如Java I/O流)。该模式以透明方式扩展对
**设计模式是软件开发中**反复复用的优秀设计思想**,是前人总结的代码设计经验,用于解决常见架构问题、解耦代码、提升扩展性、维护性。Java 标准经典设计模式共**23种(GoF)**,分为创建型、结构型、行为型三大类。本文全方位梳理所有设计模式,通俗讲解核心作用、使用场景、优缺点,帮你彻底吃透设计模式,轻松应对面试与实际开发。
Spring源码中的设计模式实战:从理论到源码的深度解析
外观模式(Facade):为子系统中的一组接口提供一个统一的高层接口,使子系统更容易使用。调用方不需要知道子系统内部有多少个组件、怎么协作,只需要跟一个"前台"打交道。归属:结构型模式。
责任链模式(Chain of Responsibility):将请求沿着处理者链传递,每个处理者要么处理请求,要么传递给下一个处理者,实现请求发送者与处理者的解耦。归属:行为型模式。
观察者模式(Observer):定义对象间一对多的依赖关系——当一个对象状态变化时,所有依赖它的对象自动收到通知并更新。也叫发布-订阅模式(Publish-Subscribe)。归属:行为型模式。
这种模式的优势就是可以方便的给对象添加新的状态和处理动作,也就是添加新的 AbstractAction 子类(算法类),在需要的时候让这个子类去访问某个成员对象,访问者模式的最大优势就是使算法的增加变得更加容易维护。”,正因为使用了双重分派机制,使得增加新的访问者无须修改现有类库代码,只需将新的访问者对象作为参数传入具体元素对象的accept()方法,程序运行时将回调在新增Visitor类中定义的
有时候我们不能或不想直接访问某个对象。比如对象创建开销很大需要延迟加载,或者需要在访问前做权限检查,或者需要记录访问日志。直接在业务代码中掺杂这些逻辑会让代码臃肿且难以维护。代理模式通过引入一个中间层,将这些控制逻辑从业务代码中分离出来。客户端代码不需要知道它是在和代理交互还是真实对象交互,两者可以透明替换。代理模式本质上是一层"中间人"——为真实对象提供一个替身,在调用前后添加控制逻辑。什么时候
设计模式是对软件开发中特定场景下重复出现的类与对象拓扑结构的总结与抽象。通俗地说,设计模式就是一套被验证过的、可复用的设计经验。它不是可以直接落地的代码库,而是一种解法模板——描述了在什么情况下,类和对象应该如何组织、如何交互、如何承接职责,从而形成一个可复用的、优雅的结构。从类的拓扑结构类与类之间如何连接(继承、组合、依赖)对象之间如何通信(调用、通知、回调)职责如何在对象之间分配(谁做什么、谁
它用于定义一个接口以封装与环境类的一个特定状态相关的行为,在抽象状态类中声明了各种不同状态对应的方法,而在其子类中实现类这些方法,由于不同状态下对象的行为可能不同,因此在不同子类中方法的实现可能存在不同,相同的方法可以写在抽象状态类中。:它是抽象状态类的子类,每一个子类实现一个与环境类的一个状态相关的行为,每一个具体状态类对应环境的一个具体状态,不同的具体状态类其行为有所不同。状态模式和策略模式比
设计模式
——设计模式
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net