logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

设计模式 21 · 备忘录模式

备忘录模式(Memento)是一种在不破坏对象封装性的前提下,捕获并保存对象内部状态的设计模式,支持后续恢复到该状态。其核心在于由对象自身(原发器)创建备忘录来保存状态,备忘录对外封闭,仅原发器可读写。管理者(如草稿箱)仅负责存储备忘录而无法访问其内容。该模式通过权限控制(如内部类或包级私有)实现封装保护,适用于状态复杂、逆操作难以实现的场景(如订单草稿功能)。与命令模式(增量撤销)和原型模式(克

文章图片
#设计模式#备忘录模式
设计模式 06 · 原型模式

原型模式(Prototype)通过克隆现有对象来创建新对象,避免重复初始化,适用于对象创建成本高或需要复制复杂状态的场景。其核心在于实现clone()方法,但需注意浅拷贝与深拷贝的区别:浅拷贝仅复制引用,导致对象间共享内部数据,可能引发隐蔽bug;深拷贝则递归复制所有引用对象,确保独立性。Java通过Cloneable接口提供原生支持,但设计存在缺陷(如空接口、受检异常)。实际应用中,可结合拷贝构

文章图片
#设计模式#原型模式
设计模式 03 · 工厂方法模式

本文探讨了工厂模式在解决对象创建问题中的应用与演进。文章从支付场景中的if-else代码痛点出发,阐述了简单工厂、工厂方法和抽象工厂三种模式的递进关系。 首先指出"new对象"也是一种耦合,简单工厂通过集中创建逻辑解决了这一问题,但仍违反开闭原则。工厂方法模式进一步改进,将产品创建权下放给子类工厂,每个具体工厂只负责创建一种产品,实现了新增支付渠道时无需修改现有代码。 文章通过支付案例展示了从简单

文章图片
#设计模式#工厂方法模式
设计模式 10 · 组合模式

组合模式通过让叶子和容器实现统一接口,消除了树形结构中处理单个元素和容器元素的区别。文章以订单系统中的商品和套餐为例,展示传统方法中因类型判断导致的复杂递归逻辑,并演示组合模式如何通过抽象组件接口(如OrderComponent)让调用方无需关心具体类型。关键实现包括:叶子节点(如Product)直接返回结果,容器节点(如ComboPackage)递归聚合子节点结果。文章还讨论了透明模式与安全模式

文章图片
#设计模式#组合模式
设计模式 19 · 命令模式

命令模式将操作封装成对象,实现请求与执行的解耦,支持撤销、排队等功能。核心在于通过"命令对象"记录操作细节,使请求可存储、传递和管理。典型应用包括订单操作撤销、线程池任务、事务处理等场景,提升系统灵活性与可扩展性。

文章图片
#设计模式#命令模式
设计模式 18 · 状态模式

本文深入解析状态模式(State Pattern),通过与策略模式的对比,揭示其核心思想:对象行为随内部状态变化而改变,且状态间按规则流转。文章以订单生命周期为例,展示传统if-else判断状态的弊端,进而提出状态模式的解决方案——将每个状态封装为独立类,自主管理行为与状态转移。关键区别在于:策略模式是平行选择算法,状态模式则是链式状态流转。状态模式包含三大角色:上下文(Context)、抽象状态

文章图片
#设计模式#状态模式
设计模式 09 · 适配器模式

这篇文章介绍了适配器模式的核心思想与实现方式。适配器模式是一种结构型设计模式,它通过包装一个对象来改变其接口形式,使其能够与原本不兼容的接口协作,而无需修改双方代码。文章以第三方物流API对接为例,展示了对象适配器(组合实现)和类适配器(继承实现)的具体代码,并对比了两者的优缺点,推荐优先使用更灵活的对象适配器。此外,文章还探讨了适配器在标准库和Spring框架中的应用场景,并与其他包装模式(装饰

文章图片
#设计模式#适配器模式
设计模式 11 · 外观模式

摘要 外观模式通过为复杂子系统提供一个统一的简化接口,降低调用方与子系统间的耦合度。该模式的核心思想是引入一个"门面类"来封装多个子系统的交互逻辑,对外仅暴露简单易用的方法。以餐厅点餐为例,顾客只需与服务员交互,无需了解后厨的复杂运作流程。 在代码实现上,外观模式解决了调用方需要直接操作多个子系统、管理复杂调用顺序的问题。通过集中编排逻辑到一个门面类中,调用方只需与单一接口交互,显著降低了系统复杂

文章图片
#设计模式#外观模式#java
设计模式 07 · 代理模式

从这一篇开始,我们离开"对象怎么造出来"(创建型),进入结构型七个模式,几乎都是在玩"包装"和"组合"的艺术。我们从其中实战出镜率最高的一个开场——。它是 Spring AOP 的底层基石,几乎每个用过 Spring 的人都在享受它的红利,却未必知道它的原理。代理的思想在生活里随处可见:你买房不直接对接房东,而是找中介;明星不亲自谈商演,而是通过经纪人。

文章图片
#设计模式#代理模式
Redis 04 · 执行模型:一条命令的生命周期与 I/O 多路复用

以一条HGET命令的完整生命周期为例,梳理Redis从网络接入、I/O多路复用、RESP解析到命令校验执行、响应写回的全链路。明确Redis6 I/O线程只并行处理Socket读写与解析,核心命令仍在主线程串行执行;Pipeline减少RTT但非原子;慢命令、Lua脚本和阻塞操作会真正阻塞主线程,为生产延迟排障提供参考。

文章图片
#redis#缓存
    共 11 条
  • 1
  • 2
  • 请选择