C++ 有哪些经常用到的设计模式?
时间:2024-02-12 12:15:01 | 来源:网站运营
时间:2024-02-12 12:15:01 来源:网站运营
C++ 有哪些经常用到的设计模式?:首先设计模式不仅有 GoF 23,还有那本书之后归纳出来的很多模式。处于上层规划程序全局框架的叫 architectural patterns 架构模式,通常和应用领域相关,如 ECS 模式之于游戏程序。处于下层与编程技巧相关的大量的细碎模式叫 idioms 惯用法,或者就叫 techniques 技巧,比如 copy-and-swap 之于 exception safety,有个 C++ Patterns 网站(背后有个 github 库),上面净是这些细碎的编程技巧代码片段。
对于 GoF 那个层级的模式,如果论 C++ 中最常用的是哪个?在 OOD 时代是 template method,常见到即使没学过设计模式,其实已经默默在用了,只是缺少对 virtual 函数的动态绑定归纳出设计意义上的认知。
而在 GP 时代最常用的是静态 strategy 模式,即 policy-based design,《Modern C++ Design》中大量讨论。与上面类似,当你在用模板参数统一组件的行为时,就已经在用该模式了,只是你不知道它叫 policy-based,没有深耕。
还有些 GoF 模式与时俱进地发展了,比如适用于交互式应用的 observer 观察者模式 -> pub-sub 发布-订阅模式(C# 的 event-delegate、Qt 的 signal-slot)-> event stream 事件流与 reactive programming 响应式编程。