常見設計模式的解析和實現(C++)之十-Proxy模式
爲其他對象提供一種代理以控制對這個對象的訪問。
UML結構圖:
抽象基類:
1)Subject:定義了Proxy和RealSubject的公有接口,這樣就可以在任何需要使用到RealSubject的地方都使用Proxy.
解析:
Proxy其實是基於這樣一種時常使用到的技術-某個對象直到它真正被使用到的時候才被初始化,在沒有使用到的時候就暫時用Proxy作一個佔位符.這個模式實現的要點就是Proxy和RealSubject都繼承自Subject,這樣保證了兩個的接口都是一致的.
實現:
1)Proxy.h
2)Proxy.cpp
3)Main.cpp
/********************************************************************
created: 2006/07/26
filename: Main.cpp
author: 李創
http://www.cppblog.com/converse/
purpose: Proxy模式的測試代碼
*********************************************************************/
#include "Proxy.h"
#include <stdlib.h>
int main()
{
Subject* pProxy = new Proxy();
pProxy->Request();
delete pProxy;
system("pause");
return 0;
}
用代理類來代替實際類對象的使用,當需要是,調用request()接口,產生實際類對象。