程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> c++設計模式---代理模式

c++設計模式---代理模式

編輯:C++入門知識

c++設計模式---代理模式


#include
using namespace std;
//代理模式中注意代理雖然可以實現某個功能,但是代理並不具備該功能,它的實現是通過調用別人的功能
//至於具體哪個功能,多態中基類指針指派生類對象,指向哪個派生類,就去調用哪個派生類的fun函數
class Base
{
public :virtual void fun()=0;
virtual ~Base(){}


};


class Derived:public Base
{
public :void fun()
{cout<<"Derived fun"<

};




class proxy:public Base
{
private:Base *pBase;//注意,這裡如果寫Derived類的對象或指針,當然可以實現,
//但是如果該代理類又要實現別的功能,就又要加該類的對象或指針。
//違背c++設計模式中開閉原則(開放接口,關閉修改)
public:proxy(Base *t){pBase=t;}
void fun()
{
pBase->fun();
}
};


int main (void)
{
Derived *pDerived=new Derived();
proxy *p=new proxy(pDerived);
p->fun();


delete pDerived;
delete p;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved