Quantcast
Channel: C++博客-所有随笔
Viewing all articles
Browse latest Browse all 7881

委托模式,被调用者的执行动作交给另一个对象实际操作,使用聚合代替继承

$
0
0
委托模式的作用是将一个接口的实现委托给另一个内部对象,这使得我们可以用聚合来替代继承,不必用继承的方式去实现具体动作,而把这个具体实现留给聚合的内部对象去实现。


#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;
}
 


何清龙 2014-01-03 17:05 发表评论

Viewing all articles
Browse latest Browse all 7881

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>