在本章中,我们深入研究了策略模式(也称为策略模式)在 C++ 泛型编程中的应用。两者的结合催生了 C++ 开发者工具库中最强大的工具 —— 基于策略的类设计。这种方法通过将类的行为从许多构建模块(即策略)中组合而成,提供了极大的灵活性,每个构建模块负责行为的特定方面。
我们学习了实现策略的不同方法 —— 这些方法可以是模板、带有模板成员函数的类、带有静态函数的类,甚至是带有常量值的类。同样多样化的还有我们使用策略的方式,包括组合、继承或直接访问静态成员。策略参数可以是类型或模板,各有其优势和局限性。
像基于策略的设计这样强大的工具也容易误用或判断不当,这种情况通常源于软件逐渐向越来越复杂的演化。为了减轻这种风险,我们提供了一套准则和建议,重点关注基于策略的设计为开发者提供的关键优势,并提出了最大化这些优势的技术和约束。
在下一章中,我们将探讨一种更为有限的设计模式,它有时可用于模仿基于策略的方法,同时避免其一些缺点。本章将专门介绍装饰器模式以及更通用的适配器模式。这两种模式都算是 C++ 的“魔法技巧”。