【发布时间】:2010-12-14 10:23:34
【问题描述】:
我有一个包含大约 400 个函数声明的头文件及其对应的包含定义的源文件。
为了在运行时用模拟替换实现,我想用对包含实现的对象的调用替换实现(指向实现的指针 - pImpl)。
这意味着我将拥有以下文件:
- mainFile.h - 像以前一样包含方法声明(必须保留,因为我无法用客户端代码替换接口)
- IImpl.h - 实现对象的抽象基(接口)
- mainFile.cpp - 将包含方法定义,它会调用 IImpl* 上的相应方法
- SpecificImpl.cpp - 包含具体实现的声明和定义
- MockImpl.cpp - 包含测试期间使用的实现的声明和定义
这样做的主要问题是出现在主头文件和每个类定义中的 400 个方法声明重复。
有什么办法可以避免这种重复吗?我正在尝试使用宏,但随后包含的顺序变得过于具体......
【问题讨论】:
标签: c++ refactoring