35 考虑virtual 函数以外的其他选择
方法
NVI(non-virtual interface)手法。
2. 将 virtual函数替换为“函数指针成员变量”,这是Strategy设计模式的一种分解表现形式。带来的一个缺点是外部函数无法访问class 的non-public成员,因此可能需要以降低封装性来解决。
-
以tr1::function成员变量替换virtual 函数,可以接受与给定目标签名式相兼容的所有可调用物。这也是Strategy设计模式的某种形式。
-
将继承体系内的 virtual 函数替换为另-一个继承体系内的virtual 函数。这是Strategy设计模式的传统实现手法。