为什么说是笨蛋学ObjectBuilder呢?并不是说这个文章是给笨蛋读的,而是一个笨蛋学习ObjectBuilder的笔记。
几个月前就开始研究ObjectBuilder了,但被他复杂的设计搞的没有头绪,现在总算懂了。
名词注解:
Strategy 直译是策略的意思,在这里是指对Object加工的一个操作;
Policy 直译是政策、方针,在这里指加工参数;
Locator 定位器,还没有透彻理解。
流程:
对象的建造过程非常类似一个产品流水线,ObjectBuilder是厂房容器,Strategy是流水线上的工人,负责不同的加工工艺,根据加工的阶段(BuilderStage)先后排放在流水线上,然后你可以事先准备一个图纸(Policy),以便工人们知道加工的参数,当然,你也可以在每个要 加工的对象旁放一个针对这个产品的加工图纸。
在Builder.Builder(IBuilderConfigurator<BuilderStage>)中准备默认的工人,存放到BuilderBase中Strategies属性中,Policies属性是存放长久有效的图纸(Policy),在开始建造(BuildUp)时,你可以提供已经存在的对象和临时图纸。首先准备一个建造上下文,实际上就是ObjectBuilder信息的映射。另外还会合并长久图纸和临时图纸。加工从第一个员工开始,将上下文和其他信息传入,然后就不管了,流水线开始.....
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构