如何在C ++中与代理类“选择加入”接口?

CinchBlue

我有5个命名的类A B C D E和2个接口I1 I2使用多重继承,我可以继承抽象类来实现接口:

class A : public I1, I2 {};


现在,我想添加更多接口I3 I4 I5

必须修改所有5个类定义是乏味的,并且违反Don't Repeat Yourself了编程原则。

如何实现接口代理类来封装接口的多态性,而不是抽象基类的多重继承?

换句话说,我希望在不使用继承的情况下将一个类强制转换为接口类。这里是否适合使用类型运算符重载?或者,也许每个类都使用构造函数会很好?目标是最大程度地减少代码重复。

相同

我看到此问题如下:

  • A,B,C等类是诸如JPG,DOC,RTF,XML,PDF等文档类型。
  • 接口I1,I2,I3等作为文档共有的功能,例如IPrint,ISaveToFile,ICompress。

因此,每个文档A,B,C ...都需要实现这些标记,以便提供这些功能。

如果我正确地描述了您的要求,那么您可以使用Design Pattern:Visitor

另外,如果适合您,我可以详细介绍。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在类中实现接口功能

来自分类Dev

如何在 TypeScript 中定义类的接口?

来自分类Dev

C#中的一个接口和两个实现类(代理)

来自分类Dev

如何在 C# 中拆分代理

来自分类Dev

如何在 C# 中拆分代理

来自分类Dev

如何在抽象类和接口之间进行选择

来自分类Dev

如何在Objective-C中的代理对象上测试选择器?

来自分类Dev

如何在Objective-C中测试代理对象上的选择器?

来自分类Dev

如何在接口类中创建超类对象?

来自分类Dev

如何在c#中查找类中使用的接口数量?

来自分类Dev

CDI如何为没有接口的类注入代理

来自分类Dev

如何在C ++中制作可比类

来自分类Dev

如何在C ++中实现静态类?

来自分类Dev

如何在C#中调用类

来自分类Dev

如何在C ++中制作可比类

来自分类Dev

如何在C ++类中输入变量?

来自分类Dev

如何在C ++类中调试变量?

来自分类Dev

如何在Notes代理中为NotesHttpRequest添加类?

来自分类Dev

如何在接口类中初始化TypeFace

来自分类Dev

如何在Delphi中的接口定义中支持类方法

来自分类Dev

如何在python类中创建更好的变量接口

来自分类Dev

如何在实现特定接口的外部引用中查找类?

来自分类Dev

如何在类中隐藏属性继承的接口

来自分类Dev

C#如何在用户代理中设置符号

来自分类Dev

选择加入目标C中的泛型

来自分类Dev

如何在C ++中加入strcpy

来自分类Dev

如何在C ++中“ sscanf”?

来自分类Dev

如何在C中截断

来自分类Dev

如何在 C 中解析