委托模式的作用是將一個接口的實現委托給另一個內部對象,
這使得我們可以用聚合來替代繼承,不必用繼承的方式去實現具體動作,而把這個具體實現留給聚合的內部對象去實現。
#include <iostream>
class RealPrinter { // the "delegate"
public:
void print() {
printf("I'll really print something");
}
};
class Printer { // the "delegator"
public:
Printer(){
p = new RealPrinter(); // create the delegate
}
~Printer(){
delete p;
}
void print() {
p->print(); // delegation
}
private:
RealPrinter *p;
};
int main() {
Printer *printer = new Printer();
printer->print();
return 0;
}