淺談C#設計模式之代理模式
代理模式是常用的結構型設計模式之一,當無法直接訪問某個對象或訪問某個對象存在困難時可以通過一個代理對象來間接訪問,為了保證客戶端使用的透明性,所訪問的真實對象與代理對象需要實現(xiàn)相同的接口.根據(jù)代理模式的使用目的不同,代理模式又可以分為多種類型,例如保護代理、遠程代理、虛擬代理、緩沖代理等,它們應用于不同的場合,滿足用戶的不同需求
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesignModel
{
public class Proxy:IAction
{
ZQZ zzz = null;
public Proxy(ZQZ mm)
{
zzz = mm;
}
public void SendFlower()
{
zzz.SendFlower();
}
public void SendCake()
{
zzz.SendCake();
}
}
public interface IAction
{
void SendFlower();
void SendCake();
}
public class ZQZ : IAction
{
public string myname { set; get; }
public void SendFlower()
{
Console.WriteLine(myname+"送花");
}
public void SendCake()
{
Console.WriteLine(myname+"送蛋糕");
}
}
}
客戶端調用:
ZQZ zzz = new ZQZ();
zzz.myname = "朱建軍";
Proxy p = new Proxy(zzz);
p.SendFlower();
p.SendCake();
代理模式分類:
1. 遠程代理,也就是為一個對象在不同的地址空間提供局部代表,這樣可以隱藏一個對象存在于不同地址空間的事實。
例如: webservice 服務
2. 虛擬代理, 是根據(jù)需要創(chuàng)建開銷很大的對象。通過它來存放實例化需要很長時間的真是對象。
瀏覽器當中是用代理模式來優(yōu)化下載頁面的
3.安全代理
用來控制真實對象訪問時的權限。
4.智能指引
是指調用真實對象時,代理處理另外一些事。
相關文章
C#使用System.Net.Mail類實現(xiàn)郵件發(fā)送
這篇文章介紹了C#使用System.Net.Mail類實現(xiàn)郵件發(fā)送的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07WinForm自定義函數(shù)FindControl實現(xiàn)按名稱查找控件
這篇文章主要介紹了WinForm自定義函數(shù)FindControl實現(xiàn)按名稱查找控件,需要的朋友可以參考下2014-08-08C#使用SQL DataReader訪問數(shù)據(jù)的優(yōu)點和實例
今天小編就為大家分享一篇關于C#使用SQL DataReader訪問數(shù)據(jù)的優(yōu)點和實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10