当前位置: 首页 > news >正文

api设计风格: 命令式/可链式/配置式

# 命令式api
for context in (gen := merge(({"old"}, {"new"}))):root = context.rootnode = context.nodeif context.diffType == "values_changed":merge.hook_forceImmutable(context.root, context.node)merge.hook_auto()else:# 可链式apimerge.hook_forceImmutable().hook_auto()# gen.send(NEW) # gen.send(None) 无法区分业务None与默认next()的底层None# TODO merge内部 有没有办法感知到 外部for循环内执行了任何命令?# 直接这样也行,走默认配置
merged = return_of(merge(({"old"}, {"new"})))# 可链式api
merged = (MergeBuilder(old, new).immutable(True).auto_for(set, "^,new-^,old-^")           # 或 .strategy(set, UnionStrategy(...)).hook("values_changed", hook_forceImmutable).hook("default", hook_auto).on_path("settings.*", override=True)     # path-specific.execute())                               # 或 .merge()# 声明式&配置式api
merged = merge(({"old"}, {"new"}),auto={set: "^,new-^,old-^"},hook={"values_changed": merge.hook_auto},
)

命令式

最灵活,但也考验库设计者的设计思路。
且使用者需要阅读文档才会使用。

Builder / Fluent / 链式 API

配置式的另类写法,链式执行

配置式

静态,但难以拓展灵活的需求

http://www.jsqmd.com/news/554591/

相关文章:

  • Qlib量化投资平台:如何用AI技术提升你的投资策略效率?
  • 飞书H5应用免登实战:用tt.requestAccess搞定SSO,避开redirect_uri的坑
  • Hugo-PaperMod终极指南:快速解决导航菜单渲染异常的3个实战方案
  • 新手小白学习web第5弹
  • 2026年罗马帘制造商家哪家售后好,靠谱品牌排名揭晓 - 工业品牌热点
  • 运算放大器实战指南:从核心原理到精准选型
  • 2026年干法制粒机口碑排行榜,济南干法制粒机生产厂怎么选择 - 工业推荐榜
  • 为什么选择skrollr?5个步骤打造专业级滚动视差效果
  • 基于JavaScript插件架构的Android TTS语音引擎自定义开发指南
  • Llama-3.2V-11B-cot视觉推理实战教程:双卡4090一键部署保姆级指南
  • 2026年杭州干法制粒机性价比高的品牌排名,值得选购的有哪些? - myqiye
  • s2-pro效果展示:高语速新闻播报(220字/分钟)清晰度实测
  • 如何用CoreAnimation打造Path风格iOS扇形菜单:AwesomeMenu深度解析与贡献指南
  • 华硕笔记本优化指南:用GHelper性能调校工具释放硬件潜能
  • Auto-Editor终极指南:如何用AI自动化工具快速剪辑视频静默片段
  • AtlasOS系统Xbox控制器驱动问题排障手册
  • 3分钟快速指南:用闲置电视盒子变身全能家庭服务器
  • 2026年石家庄地区靠谱综合热分析仪厂家,选购要点有哪些 - 工业设备
  • 3分钟快速配置:微信QQ防撤回补丁终极使用指南
  • 幻影代码:让量子计算机更稳定
  • 华为服务器RAID配置避坑指南:如何通过iBMC快速识别阵列卡型号并完成初始化
  • 直流有刷电机H桥控制避坑指南:从原理到Simulink仿真的5个常见错误
  • Seelen-UI桌面美化终极指南:5步打造个性化Windows工作环境
  • 开源人脸检测模型cv_resnet101_face-detection:CVPR2022顶会算法本地化部署指南
  • 分析磁控百叶适用于工作室的品牌,推荐靠谱又好用的 - mypinpai
  • s2-pro语音合成多场景应用:车载导航语音、电梯播报、展馆导览系统集成
  • 如何利用知识体系建设工具构建企业核心竞争力?分享大家常用的6大知识文档管理系统
  • GJK碰撞检测算法:几何空间中的碰撞裁决者
  • 从原理到调参:深入理解PyTorch的Normalize()为什么需要ToTensor()先行
  • qui:重新定义qBittorrent体验的颠覆性WebUI升级方案