自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(274)
  • 收藏
  • 关注

原创 【代码坏味道】耦合Couplers

一个方法频繁访问其他对象的数据,比访问自己对象的数据还多。

2025-05-31 19:23:59 168

原创 【代码坏味道】无用物Dispensables

提取变量提取方法重命名方法引入断言内联类合并继承结构封装字段封装集合提取方法移动方法移除设置方法隐藏方法删除参数内联类折叠继承结构。

2025-05-31 18:55:28 279

原创 【代码坏味道】变更阻碍者Change Preventers

当你修改一个类的时候,发现这个类里很多不相关的方法都要改,就说明这个类的职责太杂了!🧠 举个例子:你加一个产品类型,却要修改同一个类中用于查找、显示、下单的多个方法。你要加个新功能或改个逻辑,结果需要同时改好几个类里的一小部分,像打霰弹枪一样“到处改”。🧠 举个例子:想改个价格逻辑,结果 Product 类、Cart 类、Order 类都要动。当你给某个类添加一个子类时,发现另一个相关的类也必须添加对应的子类,两个继承结构就像“并排走路”。Animal->CatDog同时->只要新增Fish。

2025-05-31 17:08:00 257

原创 【代码坏味道】面对对象的泛滥者Object-Orientation Abusers

如果你写了很长的或if-else结构,很容易出问题。每加一种判断条件,就要改很多地方,难维护。有些类里的变量,只在特定情况下有值,大多数时候是空的。这些就是“临时字段”。你写了一个子类,它继承了父类,但只用了父类的一部分功能,很多继承的方法根本没用上,甚至要手动重写。你发现两个类做的事一模一样,但方法名不一样。坏味道表现怎么办Switch 语句写很多 case 分支用“子类”或“策略模式”代替临时字段变量只偶尔才用拆到新类里,或用空对象拒绝继承子类没用多少父类的东西。

2025-05-31 16:50:47 743

原创 【代码坏味道】膨胀类 Bloaters

一个函数(方法)写得太长了,比如超过了10 行代码,就要开始警惕了。一个类(类似于一块代码模块)里面包含太多变量、方法、代码行。就是你过度使用 int、string 这些基本类型,而不愿意封装成对象。电话号码用 string,金额用 float,而不是专门建个或Money类。用常量1, 2, 3来表示权限等级,而不是定义角色类。如果一个方法需要传超过 3~4 个参数,那就太多了。如果你在多个地方看到总是成组出现的变量。

2025-05-31 16:04:32 545

原创 DPPO并行近端策略优化算法详解

有 N_WORKER 位冒险者(Worker 线程)在打怪刷经验;3)导师教完新技能(更新PPO),再敲钟让冒险者继续刷怪。2)村长看到经验积累够多了,就敲钟通知导师(更新线程)。1)他们把经验都交给村长(数据队列)。

2025-05-14 01:40:58 794

原创 【快速区别设计思想】一个电商场景串联23种设计模式:创建型、结构型和行为型

在电商平台中,设计模式可以帮助解决各种架构、行为和交互问题。下面我们对每种设计模式进行总结,表达它们在电商场景中解决的具体问题,并简要描述它们如何解决这些问题。在电商系统中,通过这些设计模式的应用,我们可以有效地解耦系统各个组件,确保代码的灵活性、扩展性和可维护性。每种设计模式都有其独特的作用,帮助我们应对各种复杂的业务需求和变化。

2025-05-05 23:31:07 1206

原创 访问者模式(Visitor Pattern)

✅ 将操作封装到独立的访问者类中,避免修改原有类结构,符合开闭原则。✅ 适用于需要在一个不常变化的对象结构上,动态增加新操作的场景。如果你对访问者模式有其他问题或想了解更多细节,欢迎继续提问!

2025-05-05 22:34:22 923

原创 模块方法模式(Module Method Pattern)

✅ 将系统中的不同功能封装为模块,每个模块具有独立的职责。通过调用模块的公开方法来完成相应的操作,提升系统的可扩展性和可维护性。如果你对这个模式或代码有疑问,或想了解更复杂的用例,随时告诉我!

2025-05-05 22:25:53 838

原创 策略模式(Strategy Pattern)

✅ 将每种行为或算法封装成独立的策略类,客户端通过选择不同的策略来改变行为。✅ 适用于需要在运行时动态改变算法或行为的场景。如果你有任何问题或需要进一步的解释,随时告诉我!

2025-05-05 22:17:50 1438

原创 状态模式(State Pattern)

✅。

2025-05-05 22:09:32 1286

原创 观察者模式(Observer Pattern)

✅。

2025-05-05 21:35:57 899

原创 备忘录模式(Memento Pattern)

✅。

2025-05-05 21:23:59 787

原创 中介者模式(Mediator Pattern)

✅ 通过一个。

2025-05-05 19:29:35 958

原创 迭代器模式(Iterator Pattern)

是一种行为型设计模式,允许我们在不暴露对象内部结构的情况下,通过一个统一的接口遍历集合中的元素。

2025-05-05 18:57:16 745

原创 解释器模式(Interpreter Pattern)

解释器模式定义了一种语言的文法表示,并提供一个解释器,用来解释这些文法在具体上下文中的含义。应用场景示例语言处理计算器、编译器、解析器条件判断动态生成复杂的条件判断数据转换配置文件解析(XML/JSON)图形界面操作UI 控件解析和渲染解释器模式✅语法 -> 规则 -> 解析✅命令 -> 表达式 -> 计算让你能够通过抽象表达式来逐步解析并执行语言规则。是否希望我用更复杂的语法或者实际的业务场景(比如配置文件解析)来展示解释器模式的应用?我可以帮你继续拓展!

2025-05-05 18:46:00 679

原创 命令模式(Command Pattern)

命令模式将“请求的发出者”与“执行者”解耦,把请求封装成一个命令对象,实现“命令的记录、撤销、队列化”。应用场景示例图形软件操作画图、撤销、重做宏命令执行Photoshop 动作、键盘宏事务/批量处理数据库操作、文件系统命令队列命令排队或延时执行网络请求、打印任务队列✅命令是“请求的对象化”让你像操作对象一样存储、传递、组合、撤销操作。

2025-05-05 18:29:48 826

原创 责任链模式(Chain of Responsibility Pattern)

责任链模式允许多个对象都有机会处理请求,但只会有一个真正处理,请求沿着链条传递,直到被处理为止。场景示例审批流程请假、报销审批请求过滤器链Web中间件、安全校验事件处理链UI 组件冒泡传播事件日志责任链按等级处理日志输出责任链模式:一条线传到底,谁能处理谁来管✅ 让请求在链上流转,链上节点按职责处理,解耦调用逻辑!是否要我改成你熟悉的例子(比如 API 请求验证 → 授权 → 路由分发)形式?我可以马上重构给你看~或者导出为图/流程表?需要哪种形式继续?

2025-05-05 15:01:34 332

原创 代理模式(Proxy Pattern)

代理模式是通过一个“代理对象”,在访问真实对象前控制其访问、增强其功能,而不暴露真实对象的细节。类型应用示例虚拟代理图像/视频懒加载、延迟数据库连接保护代理权限校验、安全访问控制远程代理远程调用服务(RPC 框架)智能引用代理引用计数、对象池、缓存管理日志代理增加日志、监控、统计时间等功能“对象不想直接用,先找代理挡一挡”✅ 代理模式让你在不改动原对象的前提下,控制、延迟或增强它的访问方式。是否要我演示一个网络接口的请求代理、数据库缓存代理或 token 鉴权代理版本?

2025-05-04 20:41:02 950

原创 享元模式(Flyweight Pattern)

享元模式通过共享内存中相同的对象,以减少内存占用,提高性能。场景描述文本渲染大量字符复用相同字形对象游戏开发复用相同树、敌人、砖块等静态对象数据可视化坐标点对象可共享网络连接池数据库连接、线程、Socket 等资源池管理享元模式就是:✅小对象大量重复 → 提取可共享部分 → 对象复用,节省内存!需要我帮你进一步用图形界面、地图渲染、或 AI 推理模型等场景来展示享元模式应用吗?我可以按你需求定制~

2025-05-04 20:21:47 1102

原创 外观模式(Facade Pattern)

外观模式通过定义一个统一的高层接口,来简化对一组复杂子系统的调用。场景应用子系统复杂,外部统一入口启动系统、网络API、银行账户操作多模块聚合操作多步骤的注册/下单流程封装第三方库Flask / TensorFlow 二次封装统一接口“外面只看一扇门,门后全是子系统”。✅ 外观模式:用一个统一入口屏蔽多个子模块,让使用者不被内部复杂性干扰。如果你希望我换成你熟悉的场景(比如 Flask 接口封装,AI 模型统一推理接口等)做一个 Facade 示例,也可以立刻提供!是否继续深入?

2025-05-04 20:16:29 867

原创 装饰模式(Decorator Pattern)

装饰模式允许你在不修改对象结构的前提下,动态地增强对象功能。passpass不动源对象,包一层加功能。

2025-05-04 20:07:40 962

原创 组合模式(Composite Pattern)

组合模式允许你将对象组合成树形结构来表示“整体-部分”的层次结构,客户端对单个对象和组合对象使用一致的方式处理。把单个和一群统一看待,一起操作不区分整体-部分结构 + 客户端无需区分子节点/组合节点是否想要我补充一个 UI 控件树 或 公司组织树 的组合模式版本?📁📄📂 或者我帮你把这一套生成成图文学习卡片?继续深入?

2025-05-04 19:48:08 871

原创 桥接模式(Bridge Pattern)

桥接模式:将抽象部分与实现部分分离,使它们可以独立变化。“用组合代替继承”抽象 和 实现分离变化,各自独立发展,组合灵活!

2025-05-04 17:52:59 588

原创 适配器模式(Adapter Pattern)

原类接口无法动,目标接口不能改,插个适配器,两边都能嗨!第三方支付系统(如 Alipay 接口适配成统一的 Pay 接口)图像处理库 PIL vs OpenCV 的转换适配Excel 表格 vs pandas DataFrame 的适配器封装我可以按你习惯的项目来举例演示 😄 是否继续?

2025-05-04 17:39:42 1057

原创 单例模式(Singleton Pattern)

✅单例模式:一生只创建一次,全局都用它。用于「全局唯一资源访问 + 状态同步管理」如何写线程安全的单例如何实现懒汉式 vs 饿汉式单例(Java常见问题)如何避免单例污染全局结构我可以帮你扩展更多实战场景。要继续深入吗?🚀。

2025-05-04 17:34:47 980

原创 原型模式(Prototype Pattern)

应用场景示例游戏角色模板快速生成多个不同玩家UI 界面克隆克隆按钮、组件、控件数据建模克隆图形、图表元素配置系统一套配置模板克隆为多个实例“已有的,就别再造,复制就好”用于复制成本高、构造复杂、变化小的对象创建。如果你想,我还可以帮你设计一套「游戏角色配置原型系统」「表单组件快速克隆系统」等完整实战版,是否继续?🎮📄。

2025-05-04 17:23:13 1172

原创 工厂方法模式(Factory Method Pattern)

定义一个创建对象的接口,但由子类决定要实例化哪一个类,从而实现对象创建的“延迟到子类”。通俗理解:不要在代码中“写死”创建哪种对象,而是交给不同的“工厂子类”来决定。passpass“调用者只依赖工厂接口,不知道也不关心具体创建的是谁”“新增产品,只需新增子类,不动旧代码”如果你还想,我可以帮你把这套流程换成“支付方式工厂”(微信支付/支付宝/PayPal)或“消息通知工厂”(短信/邮件/钉钉)等实战例子,帮助你更快上手!需要我继续吗?📲。

2025-05-03 21:40:02 967

原创 生成器模式(Builder Pattern)

生成器模式(Builder Pattern)是一种将复杂对象的构建过程与其表示分离的设计模式,使得同样的构建过程可以创建不同的表示。应用举例文档生成器报表导出游戏建模不同角色装备逐步构建UI 工厂分步骤构建窗口、按钮、面板等✅Builder 是一步步建造复杂对象的工具参数多、步骤多同一个流程可以生成不同风格希望隐藏构造细节如果你想,我可以帮你做一张「生成器模式 x 对照学习图」+「记忆模板」,或者用你熟悉的领域(比如订阅系统、报表生成、页面布局)来再举一个应用例子,是否继续?📘。

2025-05-03 21:20:39 1319

原创 抽象工厂模式(Abstract Factory Pattern)

✅ 抽象工厂负责生产“产品系列”,只换工厂,不动逻辑。适用于“同一风格的多组件系统”。如果你希望,我可以把这个例子替换成游戏皮肤工厂、汽车工厂、手机UI工厂来帮助你更贴近生活。你想试试哪个?🎮🚗📱。

2025-05-03 19:59:30 1241

原创 基于「骑手外卖系统」串联7大设计原则

原则在外卖系统中的例子守住了什么?✅ SRP 单一职责把提现从 Rider 拆出去让每个类更专注✅ OCP 开闭原则增加新配送方式,不动旧代码提高扩展能力✅ ISP 接口隔离不强制 Rider 实现“飞无人机”让接口更贴合实际✅ LSP 里氏替换LazyRider 会炸 → 不合适保证多态安全✅ DIP 依赖倒置用接口注入 rider,不依赖具体类解耦调用与实现✅ CRP 合成复用用 RepairService 而不是继承优先组合、灵活替换✅ LoD 迪米特法则。

2025-05-03 19:14:35 815

原创 里氏替换原则(LSP)

任何父类出现的地方,都应该可以用它的子类替代,并且不会导致程序逻辑出错。子类能替换父类,并保持行为正确。原则理解方式记忆口诀✅ 里氏替换原则子类能替换父类,行为不崩溃“不是你的儿子,不要继承你”🚨 如何避免抽象设计精准、使用接口拆分“不要滥用继承,改用组合或接口”

2025-05-03 18:25:25 1112

原创 接口隔离原则(ISP)

客户端不应该被强迫依赖它不使用的方法。接口(或抽象类)应该小而精;不要让一个类必须实现一堆它根本用不到的方法。❌ 一个接口塞太多方法 → 所有人都被迫实现 →违反 ISP✅ 把大接口拆小、按需组合 → 谁用啥就实现啥 →遵守 ISP。

2025-05-03 16:15:18 1017

原创 合成复用原则(CRP)

合成复用原则(CRP)尽量使用“组合/聚合”来实现代码复用,而不是通过继承。🧩能用组合,就别继承!继承是一种“硬绑定”,组合才是“灵活拼装”。比较项继承组合耦合度高(父变子崩)低(组合可替)灵活性固定继承体系可组合多个能力可替代性差强(运行时替换)设计模式支撑Strategy, Decorator 等如果你希望我用一个真实项目例子(比如:支付系统、角色技能系统、Web Controller组合)来演示「组合复用」的效果,我可以继续带你写一段小实战!要不要试试看?🚀。

2025-05-03 16:03:55 921

原创 开闭原则与依赖倒置原则区别:原类不变,新增类(功能)vs 接口类不变,原实现类可变

术语本质类比依赖倒置原则“我不找人,我找能力”老板说:我只找‘会干活的人’开闭原则“我不改旧流程,我加新流程”老板说:原来只画画,现在再加个写代码的人问题依赖倒置原则解决开闭原则解决“我要和谁合作?和接口合作,不直接找具体人✅“我以后要加功能怎么办?不改原代码,扩展新模块✅“我要换人怎么办?换人不换流程(只要接口兼容)✅依赖倒置 = 找能力;开闭原则 = 加人干新活。需要我再用一个小游戏、支付系统、或微服务场景帮你「角色扮演实战」吗?讲起来会更容易理解~

2025-05-02 17:57:42 531

原创 依赖倒置原则(DIP)

高层模块不应该依赖低层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。程序要依赖接口,而不是依赖实现。依赖倒置原则让系统依赖“接口而不是实现”,从而实现模块解耦、系统灵活、扩展容易。

2025-05-02 17:54:51 1081

原创 迪米特法则(LoD)

迪米特法则:一个对象应尽可能少地了解其他对象的内部细节。换句话说:“你只能和你直接的朋友说话,而不要和朋友的朋友说话。迪米特法则=“最少知道” + “别越界”只操作你直接信任的对象,不要过度了解或依赖别人的内部实现,否则系统就变得脆弱。如果你希望,我可以再画一张**“违反 vs 遵守”的对比图**,或者做个“真实场景案例”比如 Web Controller 层应用 LoD 的封装模式。想继续深入哪部分?图示对比、还是实战代码?✨。

2025-05-02 17:25:41 987

原创 开闭原则(OCP)

开闭原则(OCP)对扩展开放(Open for extension),对修改关闭(Closed for modification)。当新增功能时,你应该通过“增加代码”来扩展系统功能;而不是“修改已有代码”来实现。“不要动旧代码,直接加新代码”就是开闭原则的核心。插件式架构策略选择(多种支付方式、消息发送、折扣策略)工厂/注册系统如果你希望我进一步举例,比如用开闭原则写个“策略模式支付系统”或“数据导出系统(CSV, JSON, Excel)”,我也可以帮你画一套结构+代码~

2025-05-02 17:13:05 1282

原创 单一职责原则(SRP)

单一职责原则(SRP):一个类、模块或函数应该只有一个引起它变化的原因。一个组件只负责一件事,即它应该有单一功能职责,不应掺杂多种功能。SRP 是高内聚、低耦合的基础。如果一个类有多个职责,它的变化就会互相牵连,修改一个功能可能会影响另一个功能,带来维护地狱。如果你正在做面向对象设计,遵守 SRP 是非常值得长期坚持的习惯。需要我帮你结合某个实际项目或框架应用 SRP 设计也可以继续说!需要我画类图 or 多层SRP的结构演进图也可以~

2025-05-02 16:56:37 862

原创 Transformer架构

【模型结构优化】↓→ 多头注意力:多角度关注不同信息→ 稀疏注意力:提升长文本效率→ 相对位置编码:增强依赖捕捉能力【结构级增强】↓→ Transformer-XL:跨段上下文连接→ 更深/更广网络结构:提升表达能力【训练技巧】↓→ 学习率调度(warm-up + 衰减)→ 梯度累积:提升 batch size 训练稳定性【正则化 & 内存优化】↓→ 混合精度(FP16)提升速度减少内存【迁移学习】↓→ 大模型预训练 → 微调→ 领域数据适配(领域适应)【模型压缩】

2025-04-06 14:00:29 625

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除