在委托方式下,有两个对象参与处理一个请求,接受请求的对象将操作委托给它的代理者。
委托结构图图示如下:
代码示例:
#include <iostream>
using namespace std;
class Rectangle
{
public:
Rectangle()
: m_width(10)
, m_height(10)
{
}
public:
int Area()
{
return m_width*m_height;
}
private:
int m_width;
int m_height;
};
class Window
{
public:
Window( Rectangle *r)
:rect(r)
{
}
~Window()
{
delete rect;
rect = NULL;
}
public:
int Area()
{
return rect->Area();
}
private:
Rectangle *rect;
};
int main()
{
Window win(new Rectangle());
int area = win.Area();
return 0;
}