第15章 策略式设计模式

基于策略的设计是最著名的C++设计模式之一。自1998年标准模板库(STL)引入以来,很少有新思想能像基于策略的设计这样,对C++程序的设计方式产生如此深远的影响。

基于策略的设计的核心在于灵活性、可扩展性和可定制性,是一种软件设计方法,能够使软件持续演进,并适应不断变化的需求,其中一些需求甚至在最初设计时都无法预见。一个设计良好的基于策略的系统,可以在结构层面多年保持不变,同时无妥协地满足不断变化的需求和新的要求。

不幸的是,这种方法也可能构建出功能强大但极其复杂的软件系统 —— 这些系统具备上述所有优点,却往因为没有人能弄清楚其工作原理而难以维护。本章的目标是介绍如何设计和理解前一类系统,同时避免陷入导致后一类灾难的过度复杂化。

本章将涵盖以下主题: