1. 用于啥需求?
实现多态性。它允许统一管理和操作多种子类对象,在传统方法中,这通常通过基类指针来实现。
2. 何时使用 Proxy?
每当你在代码中使用 virtual 关键字定义虚函数时,可以考虑使用 Proxy 库作为替代方案,以提高性能和简化代码管理。
3. 有时候 CRTP 也可以替代 virtual,CRTP 也能用 Proxy 替代吗?
虽然 Curiously Recurring Template Pattern (CRTP) 可以在某些情况下替代 virtual 函数,但 Proxy 并不是用来替代 CRTP 的。如果你的目标是代码复用,而不是统一管理多种子类,那么 CRTP 仍然是更合适的选择。例如,如果你有多个项目使用相似的代码段,并且这些代码段被封装在一个基类中,通过 CRTP 实现代码复用,而这些子类只在各自的项目模块中使用,那么继续使用 CRTP 是合适的,使用 Proxy 则不太适合。