代理模式是在面向对象编程中经常使用的一种设计模式。它旨在使递归、重用、测试、实现时更加灵活简单。
上面是我乱扯的。
关于代理类,在opencv中倒是经常用到,它们是 InputArray/OutputArray/InputOutputArray 等等。它们是Mat、Mat_、Mat_<T, m, n>、vector、vector<vector>、vector这些类的代理。也就是说,如果一个函数的参数是 InputArray/OutputArray/InputOutputArray ,那么你可以传入被代理的这些类作为参数。最常见的操作就是例如我想要用的是Mat类,但是传进来的是InputArray/OutputArray/InputOutputArray ,我只要用一个getMat()函数就能转换成Mat类。