我有 5 个名为 A B C D E
的类和 2 个接口(interface) I1 I2
。使用多重继承,我可能会继承抽象类来实现接口(interface):
A 类:public I1, I2 {};
现在,我想添加更多接口(interface)I3 I4 I5
。
必须修改所有 5 个类定义是乏味的,并且违反了作为编程原则的 Don't Repeat Yourself
。
我如何实现接口(interface)代理类来封装接口(interface)的多态端而不是抽象基类的多重继承?
换句话说,我想在不使用继承的情况下将一个类转换为一个接口(interface)类。类型运算符重载是否适合这里?或者,也许每个类使用一个构造函数会很好? 目标是尽量减少代码重复。
最佳答案
我看到这个问题如下:
- A、B、C 类...是文档类型,例如 JPG、DOC、RTF、XML、PDF...
- 接口(interface) I1、I2、I3,...作为文档通用的功能,如 IPrint、ISaveToFile、ICompress。
因此,每个文档 A、B、C... 都需要实现这些接口(interface)才能提供这些功能。
如果我已经正确描述了您的要求,您可以使用 Design Pattern : Visitor .
此外,如果这符合您的要求,我可以详细介绍。
关于c++ - 如何在 C++ 中使用代理类执行 "opt-in"接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37582785/