国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

淺談C#設(shè)計(jì)模式之代理模式

2020-01-24 02:14:05
字體:
供稿:網(wǎng)友

代理模式是常用的結(jié)構(gòu)型設(shè)計(jì)模式之一,當(dāng)無法直接訪問某個(gè)對(duì)象或訪問某個(gè)對(duì)象存在困難時(shí)可以通過一個(gè)代理對(duì)象來間接訪問,為了保證客戶端使用的透明性,所訪問的真實(shí)對(duì)象與代理對(duì)象需要實(shí)現(xiàn)相同的接口.根據(jù)代理模式的使用目的不同,代理模式又可以分為多種類型,例如保護(hù)代理、遠(yuǎn)程代理、虛擬代理、緩沖代理等,它們應(yīng)用于不同的場合,滿足用戶的不同需求

復(fù)制代碼 代碼如下:

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+"送蛋糕");
        }
    }
}

客戶端調(diào)用:

復(fù)制代碼 代碼如下:

  ZQZ zzz = new ZQZ();
             zzz.myname = "朱建軍";
             Proxy p = new Proxy(zzz);
             p.SendFlower();
             p.SendCake();

代理模式分類:

1. 遠(yuǎn)程代理,也就是為一個(gè)對(duì)象在不同的地址空間提供局部代表,這樣可以隱藏一個(gè)對(duì)象存在于不同地址空間的事實(shí)。

例如: webservice 服務(wù)

2. 虛擬代理, 是根據(jù)需要?jiǎng)?chuàng)建開銷很大的對(duì)象。通過它來存放實(shí)例化需要很長時(shí)間的真是對(duì)象。

  瀏覽器當(dāng)中是用代理模式來優(yōu)化下載頁面的

3.安全代理

  用來控制真實(shí)對(duì)象訪問時(shí)的權(quán)限。

4.智能指引

是指調(diào)用真實(shí)對(duì)象時(shí),代理處理另外一些事。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涡阳县| 甘洛县| 龙里县| 浪卡子县| 岳阳市| 东乌珠穆沁旗| 香格里拉县| 新宁县| 黄山市| 永嘉县| 巫山县| 陕西省| 云和县| 红桥区| 凉城县| 铜山县| 凤冈县| 秦安县| 双桥区| 鲜城| 来凤县| 靖西县| 云安县| 鄢陵县| 祁连县| 渭源县| 大厂| 财经| 杭锦旗| 绵阳市| 台安县| 隆回县| 襄城县| 成安县| 四子王旗| 榆社县| 扶沟县| 京山县| 海淀区| 江西省| 安陆市|