我正在包装一个我没有编写的库,以使其更加用户友好。有大量非常基本的函数,因此当真正需要的只是结果的类型转换时,必须包装所有这些函数并不理想。
一个人为的例子:
假设库有一个类 QueryService,它有这个方法:
WeirdInt getId() const;
我想在我的界面中有一个标准的 int 但是,我可以从 WeirdInt 中得到一个 int 没问题,因为我知道如何做到这一点。在这种情况下,可以说 WeirdInt 具有:
int getValue() const;
这是一个非常简单的例子,通常类型转换更复杂,并不总是只调用 getValue()。
从字面上看,有数百个函数调用会返回类似这些类型,并且一直在添加更多类型,所以我想尝试减轻自己的负担,每次库所做的只是为了将 WeirdType 变成类型。
我想最终得到一个 QueryServiceWrapper,它具有与 QueryService 相同的功能,但我已经转换了类型。我是否必须编写一个名称相同的方法来包装 QueryService 中的每个方法?还是我缺少一些魔法?还有更多内容,但与这个问题无关。
谢谢