文章分类 -  系统/架构设计

摘要:访问者(Visitor)设计模式详解 一、概念解释 访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 一句话总结:访问者模式的目的是 将数据结构与对数据的操作分离,允许在不修改数据结构的情况下,新增新的操作。 二 阅读全文
posted @ 2025-09-09 19:34 AlphaGeek 阅读(23) 评论(0) 推荐(0)
摘要:模板方法(Template Method)设计模式详解 一、概念解释 模板方法(Template Method)模式: 在一个抽象类中定义一个操作的算法骨架,而将一些具体步骤延迟到子类中实现。子类在不改变算法整体结构的前提下,重新定义某些步骤的实现。 一句话总结:父类确定流程,子类决定细节。 二、特 阅读全文
posted @ 2025-09-09 17:35 AlphaGeek 阅读(8) 评论(0) 推荐(0)
摘要:策略模式(Strategy Pattern) 一、概念 策略模式:定义一系列算法,把它们分别封装起来,使它们可以互相替换。本模式使得算法可独立于使用它的客户端而变化。 换句话说: 👉 把容易变化的算法提取出来,作为策略传入,从而避免在主流程里写死逻辑。 二、特点 封装性:每个算法单独成类,彼此独立 阅读全文
posted @ 2025-09-09 16:33 AlphaGeek 阅读(29) 评论(0) 推荐(0)
摘要:状态模式 (State Pattern) 详解及示例 一、状态模式的概念 状态模式(State Pattern):允许对象在内部状态改变时,改变它的行为。对象看起来就像修改了它的类一样。 通俗点说: 传统写法:对象用一个变量保存状态,然后一堆 if-else 判断逻辑,麻烦又难维护。 状态模式:把不 阅读全文
posted @ 2025-09-09 15:12 AlphaGeek 阅读(37) 评论(0) 推荐(0)
摘要:观察者模式 - 同步与异步实现示例 一、通俗解释观察者模式 场景比喻 想象你订阅了某个电商 APP 的“降价提醒”功能: 当商品降价时,你会收到推送消息。 你朋友也订阅了这个商品,他也会收到消息。 如果有很多人都订阅了,商场并不知道你们是谁,它只会“群发通知”。 这就是 观察者模式: 被观察者(Su 阅读全文
posted @ 2025-09-09 13:54 AlphaGeek 阅读(32) 评论(0) 推荐(0)
摘要:备忘录模式(Memento Pattern)实现与详解 ✅ 完整代码示例(Memento 模式实现 TextEditor 的 Undo/Redo) // 备忘录:负责存储 TextEditor 的状态(不可变) class Memento { private final String state; 阅读全文
posted @ 2025-09-08 22:15 AlphaGeek 阅读(11) 评论(0) 推荐(0)
摘要:Mediator 模式示例(完整代码 + 详细注释与布尔值解释) 下面是一个完整、可运行的 Java Swing 示例,演示如何使用中介者(Mediator)模式管理多个复选框与按钮之间的交互。代码之后包含详细注释和对 true / false 布尔值在每一步含义的逐行解释与示例场景,便于阅读和下载 阅读全文
posted @ 2025-09-08 20:39 AlphaGeek 阅读(8) 评论(0) 推荐(0)
摘要:问题 1 要不要我给你写个对比示例(有注解 vs 无注解,编译输出的警告区别)? 回答 好的,我给你一个对比示例: 1. 不使用 @SafeVarargs import java.util.List; import java.util.ArrayList; public class Demo1 { 阅读全文
posted @ 2025-09-08 14:27 AlphaGeek 阅读(5) 评论(0) 推荐(0)
摘要:代理模式 (Proxy Pattern) 1. 概念 代理模式是一种 结构型设计模式,它的核心思想是: 不直接访问目标对象,而是通过一个代理对象间接访问目标对象。 这样做的目的可能是: 控制访问权限(保护代理 / 鉴权)。 添加额外功能(日志、缓存、延迟加载等)。 提高性能(远程代理、虚拟代理等)。 阅读全文
posted @ 2025-09-06 16:17 AlphaGeek 阅读(67) 评论(0) 推荐(0)
摘要:Flyweight 模式 vs Singleton 模式 Flyweight 模式示例(完整) import java.util.HashMap; import java.util.Map; // 享元类:Student public class Student { // 缓存池 private s 阅读全文
posted @ 2025-09-06 15:16 AlphaGeek 阅读(14) 评论(0) 推荐(0)
摘要:Facade模式(外观模式)完整示例及Adapter对比 🎯 场景:注册一家公司 注册公司需要走三个子系统: 工商局 → 申请营业执照 银行 → 开设公司账户 税务局 → 申请纳税号 如果让用户自己对接三个部门,流程复杂,接口难记。于是我们引入 Facade(外观),由它来统一处理,客户只用调用一 阅读全文
posted @ 2025-09-06 12:36 AlphaGeek 阅读(58) 评论(0) 推荐(0)
摘要:桥接模式(Bridge Pattern)完整示例 如下片段是桥接模式(Bridge Pattern)的经典案例:把“品牌”维度和“发动机”维度解耦开来,用组合代替继承,避免子类爆炸。 使用传统继承方式 使用桥接设计模式后 我来把这段代码补全,并用通俗的语言解释。 桥接模式完整代码 // 定义Engi 阅读全文
posted @ 2025-09-05 22:39 AlphaGeek 阅读(87) 评论(0) 推荐(0)
摘要:Builder模式概念与披萨示例 1. Builder 模式的概念 Builder 模式(建造者模式)是一种创建型设计模式,它的核心思想是: 把复杂对象的构建过程和它的表示分离,使得同样的构建过程可以创建不同的表示。 通俗讲:当对象构造参数很多,且不同组合会生成不同实例时,使用 Builder 模式 阅读全文
posted @ 2025-09-05 14:58 AlphaGeek 阅读(65) 评论(0) 推荐(0)
摘要:🚗 工厂方法模式 vs 抽象工厂模式 我们用一个 汽车生产 的例子来说明两者的区别。 1. 工厂方法模式(Factory Method) 特点:一个工厂负责生产某一类产品。 👉 例子: 我们有一个 汽车工厂接口,不同的工厂只能生产一种型号的车。 // 产品接口 interface Car { v 阅读全文
posted @ 2025-09-05 11:59 AlphaGeek 阅读(130) 评论(0) 推荐(0)
摘要:1、如下代码的函数,一直会往下递归,递归到n=0时,但是没有看到对应的取值是多少啊?那这个怎么回溯呢? sum_cache = {0: 0} def number_sum(n): """Returns the sum of the first n numbers""" assert n >= 0, 阅读全文
posted @ 2025-02-27 14:16 AlphaGeek 阅读(6) 评论(0) 推荐(0)
摘要:1、单例模式的定义、用途、实现方法 单例模式(Singleton Pattern)是一种创建型设计模式,其核心目标是确保一个类只有一个实例,并为该实例提供全局访问点。在 Python 中,它通常用于管理全局唯一的资源(如配置、日志、数据库连接池等)。 核心概念 唯一性无论创建多少次对象,实际只会生成 阅读全文
posted @ 2025-02-19 14:29 AlphaGeek 阅读(41) 评论(0) 推荐(0)
摘要:1、什么是状态机,给出概念和举例说明 状态机(State Machine)是一种行为模型,用于描述一个实体(如对象、系统或过程)在不同状态之间的转换。状态机的核心思想是,实体在任何时刻都处于一个特定的状态,并且根据输入事件或条件,从一个状态转换到另一个状态。 状态机广泛应用于计算机科学、工程学和许多 阅读全文
posted @ 2025-02-03 22:20 AlphaGeek 阅读(30) 评论(0) 推荐(0)