有时我发现自己在编写非常简单的包装器,其中包装器方法直接对应于适配类的一种方法,即:
class ToBeAdapted
{
public:
void a();
void b(int arg);
};
class Wrapper
{
public:
void newA()
{
_adapted.a();
}
void newB(int arg)
{
_adapted.b(arg);
}
private:
ToBeAdapted _adapted;
};
这(可能使用模板魔法和/或暗预处理程序?)是否可以概括一下,只是为了节省编写时间并让以后更容易切换包装界面?
像这样的东西会很酷:
wrap_around<ToBeAdapted>(ToBeAdapted::a, newA, ToBeAdapted::b,newB) Wrapper; //Creates the same wrapper class as specified above.