代理模式(PROXY),也称为委托模式,作用就是找一个对象来替我们访问某个对象,就像租房子,需要找中介,中介就是属于代理。
租房子模型
#include
#include
using namespace std;
class Person
{
public:
virtual void rentHouse() = 0;
};
class Mike :public Person
{
public:
void rentHouse()
{
cout () const noexcept
{ // return pointer to class object
#if _ITERATOR_DEBUG_LEVEL == 2
_STL_VERIFY(_Myptr, "auto_ptr not dereferencable");
#endif /* _ITERATOR_DEBUG_LEVEL == 2 */
return (get());
}
_NODISCARD _Ty * get() const noexcept
{ // return wrapped pointer
return (_Myptr);
}
_Ty * release() noexcept
{ // return wrapped pointer and give up ownership
_Ty * _Tmp = _Myptr;
_Myptr = nullptr;
return (_Tmp);
}
void reset(_Ty * _Ptr = nullptr)
{ // destroy designated object and store new pointer
if (_Ptr != _Myptr)
delete _Myptr;
_Myptr = _Ptr;
}
private:
_Ty * _Myptr; // 接收外部穿过来的指针
};
智能指针类实现了指针的常用操作,代理普通指针进行相关行为。