Tag: Design Patterns
All the articles with the tag "Design Patterns".
-
用 C# 实现责任链模式:5 步写出生产级审批链
Published: at 11:12 PM以采购审批为例,分步演示 C# 责任链模式的接口 vs 抽象类选型、具体处理器编写、Builder 链构建、DI 容器集成和日志诊断,附常见踩坑点。
-
C# 自定义特性实战:验证、插件注册和命令路由的完整实现
Published: at 05:00 AM自定义特性是 C# 框架机制的底层基础——验证框架、MVC 路由和插件系统都依赖它。本文从 Attribute 的基础定义出发,通过验证约束、插件扫描和命令路由三个完整实例演示如何用反射读取运行时元数据,并介绍热路径下的缓存策略和源代码生成器的适用边界。
-
C# 代理模式实战:用组合叠加缓存、限流和日志
Published: at 03:40 AM当一个 HTTP 客户端同时要处理缓存、限流、日志,单类实现很快变成难以维护的混乱代码。代理模式让每个横切关注点拥有独立的类,它们共同实现同一接口,通过依赖注入组合成调用链。本文以天气 API 客户端为例,完整演示缓存代理、限流代理、日志代理和熔断器代理的 C# 实现与组合方式。
-
C# 享元设计模式完全指南:原理、实现与实战
Published: at 01:00 AM享元模式通过共享内在状态大幅减少内存占用:5000个粒子只需3个Flyweight实例,内存从320MB降至不足200KB。本文用字符渲染和粒子系统两个例子讲清楚内在/外在状态分离、工厂池化、线程安全和DI集成。
-
C# 状态模式完整实战指南:从接口到依赖注入
Published: at 01:40 AM用订单处理状态机为例,逐步讲解如何在 C# 中实现状态模式:定义接口、创建具体状态类、构建上下文、添加转移事件、引入守卫条件,最后接入 DI 容器。
-
.NET 中的解释器模式:把业务规则变成可组合的表达式
Published: at 07:11 AM解释器模式(Interpreter Pattern)能把硬编码的 if-else 业务规则拆解成可组合、可配置的表达式树。本文用折扣规则引擎为例,演示如何在 .NET 中用终止表达式、逻辑组合器和配置解析器,让规则引擎摆脱重新部署的束缚。
-
C# 状态设计模式完全指南:用多态消灭条件分支
Published: at 11:40 PM状态设计模式让对象在内部状态变化时自动切换行为,用独立的状态类替代庞大的 switch 语句。本文从核心组件讲起,配合订单系统完整代码,带你掌握有限状态机、状态转移设计、与策略模式的区别,以及何时该用这个模式。
-
C# 适配器模式 vs 外观模式:区别与选用指南
Published: at 11:46 PM适配器模式和外观模式都是结构型设计模式,都涉及包装已有代码,但它们解决的是完全不同的问题。本文用 C# 代码示例逐一拆解两者的意图差异,并给出清晰的决策标准。
-
EF Core 中的规格模式:告别 Repository 臃肿,实现灵活可复用的数据查询
Published: at 07:00 AM规格模式(Specification Pattern)是解决 Repository 方法爆炸、查询逻辑重复问题的优雅方案。本文从接口定义到 EF Core 集成,再到 And/Or 组合规格,完整演示如何在 .NET 项目中用规格模式替代或简化 Repository,让数据访问层保持整洁、可测试、可组合。