使用基于策略的设计,EncapsulatedAlgorithm:templateclassEncapsulatedAlgorithm:publicPolicy{doublex=0;public:usingPolicy::subCalculate;voidcalculate(){Policy::subCalculate(x);}protected:~EncapsulatedAlgorithm()=default;};可能有一个执行子计算的策略Policy。子计算对于算法来说不是必需的:在某些情况下可以使用它来加速算法收敛。因此,为了对其进行建模,假设存在三种策略。只是“记录”一些东西的: