我有一个API,我必须通过包装提供更高级别,更友好,更简化的框架。
此API已与其非托管版本包装完全相同。但它有各种不直观的成员名称,工作流程等。
我正在使用合成来存储对底层类型的引用,这样我可以按照我想要的方式拥有成员。基本上将某些功能转换并组合到属性,使用其他一些较低级别的逻辑等具有更高级别的功能
public class Effect
{
public IEffect {get; private set;}
...
}
但我开始考虑的一件事是,由于最初的C ++ API主要基于继承和虚拟方法,我应该如何“暴露”/包装/链接这些?
我应该只提供调用internalType.VirtualMethod()
等的其他方法吗?但这似乎不起作用,对吗?
但另一方面,如果我自己使用继承:
public class Effect : IEffect
然后我将拥有所有这些成员和奇怪的,偶然的功能。我仍然可以提供更高级别的功能,但我不想展示这些成员,因为有很多原因,其中一个最简单的就是它们不像.NET一样。
你有什么建议来实现这个目标?
答案 0 :(得分:1)
编写一个包装类。从长远来看,你会很高兴你做到了。