当前位置:首页 > 门店拓客 > 正文内容

代理模式类型

wxianyue10小时前门店拓客983
国内最强的AI写作工具,帮你写爆款文案

目录

代理模式 引言

在某些情况下,一个客户不能或者不想直接引用一个对象,此时可以通过一个称之为“代理”的第三方来间接引用。代理可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容或者添加额外的内容。

定义

英文定义:" a or for to toit."。

中文定义:给某一给对象提供一个代理,并由代理对象控制对原对象的引用。

代理模式重要等级★★★★☆ 代理模式难度等级★★★☆☆

模式类图

代理模式和装饰器模式的区别_代理模式有几种_代理模式

代理模式包含以下角色:

1. 抽象主题角色

抽象主题角色声明了真实主题和代理主题的公共接口,这样一来任何使用真实主题的地方都可以使用代理主题。

2.Proxy 代理主题角色

代理主题中维护一个真实主题的引用

3. 真实主题角色

代理模式类型

根据代理模式的使用目的,代理模式有以下几种类型。这些代理模式的实例我有空就不断补充~

远程代理

远程代理为一个位于不同的地址空间的对象提供一个本地的代理对象,这个不同的地址空间可以是在同一台主机中代理模式,也可是在另一台主机中,远程代理又叫做大使()。

虚拟代理

如果需要创建一个资源消耗较大的对象,先创建一个消耗相对较小的对象来表示,真实对象只有在需要时才真正创建。

图片代理

图片代理属于虚拟代理的一种实际运用场景,在网页中,图片一般提供一个小图片,当用户需要查看大图时再通过点击图片来激活另一个连接,这样可以提高浏览器速度,不需要一开始就加载那么多大图片。

Copy-on-Write代理

它是虚拟代理的一种,将复制克隆操作延迟到只有客户端真正需要时才执行。一般来说,一个对象的深克隆是一个开销较大的操作,Copy-on-Write代理可以让这个操作延迟,只有对象被调用到的时候才克隆。

保护代理

控制对一个对象的访问,可以给不同用户提供不同级别的使用权限。

保护代理实例-论坛权限控制代理

实例说明

在一个论坛中已注册用户和游客权限不同,已注册的用户拥有发帖、修改自己的注册信息、修改自己的贴子等功能;而游客只能看别人发的帖子,没有其他权限。使用代理模式来设计改权限管理模块。

实例类图

代理模式和装饰器模式的区别_代理模式有几种_代理模式

代码实现

抽象权限类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
interface AbstractPermission
{
    void ModifyUserInfo();
    void ModifyNote();
    void ViewNote();
    void PublishNote();
    void SetLevel(int level);
}

真实主题类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class RealPermission : AbstractPermission
{
    public void ModifyNote()
    {
        Console.WriteLine("修改帖子。");
    }
    public void ModifyUserInfo()
    {
        Console.WriteLine("修改用户信息。");
    }
    public void PublishNote()
    {
        Console.WriteLine("发帖。");
    }
    public void SetLevel(int level)
    {
        throw new NotImplementedException();
    }
    public void ViewNote()
    {
        Console.WriteLine("浏览帖子。");
    }
}

代理主题类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
class PermissionProxy : AbstractPermission
{
    private RealPermission permission = new RealPermission();
    private int level = 0;
    public void ModifyNote()
    {
        if (0 == level)
            Console.WriteLine("权限不足");
        else
            permission.ModifyNote();
    }
    public void ModifyUserInfo()
    {
        if (0 == level)
            Console.WriteLine("权限不足");
        else
            permission.ModifyUserInfo();
    }
    public void PublishNote()
    {
        if (0 == level)
            Console.WriteLine("权限不足");
        else
            permission.PublishNote();
    }
    public void SetLevel(int level)
    {
        this.level = level;
    }
    public void ViewNote()
    {
        permission.ViewNote();
    }
}

测试代码

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
class Program
{
    static void Main(string[] args)
    {
        AbstractPermission permission;
        permission = new PermissionProxy(); //这一行可配置化
        for(int i = 0; i < 2; i++)
        {
            permission.SetLevel(i);
            permission.ViewNote();
            permission.PublishNote();
            permission.ModifyNote();
            permission.ModifyUserInfo();
            Console.WriteLine("----------------------");
        }
    }
}

运行结果

代理模式_代理模式有几种_代理模式和装饰器模式的区别

缓冲代理

为某一个目标操作提供临时的存储空间,以便多个客户端可以共享这些结果。

防火墙代理

保护目标不让恶意用户接近

同步化代理

使几个用户能够同时使用一个对象而没有冲突。

智能引用代理

当一个对象被引用时,提供一些额外的操作,如记录该对象被调用的次数。

动态代理

代理模式的类图中,代理类维护了一个真实主题角色作为内部成员属性,每个真实主题角色都对应着一个代理主题角色代理模式,这意味着系统中的类的个数将会急剧增加。动态代理就是为了解决这个问题,它提供一个动态代理类,用户可以通过配置的方式设置具体真实主题的类名,代理类和真实主题类解耦。

总结 模式优点

1.代理模式作为一个中介对象,降低了系统的耦合度。

2.远程代理模式突破了计算机性能和处理速度的瓶颈。

3.虚拟代理用小对象来代表一个大对象AI一键帮你写论文,可以减少系统资源的消耗,对系统进行优化并提高运行速度。

4.保护代理可以控制对真实对象的使用权限。

模式缺点

1.有些代理模式的实现非常复杂,编程难度大。

2.客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。

手机浏览,点击图片保存二维码到相册,然后打开微信扫一扫选择本二维码图片就可以进入,电脑端微信“扫一扫”二维码,进入找聊天搭子平台,里面有找饭搭子、找对象、找陪伴服务等等

扫描二维码推送至手机访问。

版权声明:本文由小猪信息平台发布,如需转载请注明出处。

本文链接:https://pplcom.com/post/59127.html

分享给朋友:

相关文章

小程序1.0-2.0,微信小程序生态的现在式和将来时

小程序1.0-2.0,微信小程序生态的现在式和将来时

从跳一跳、小打卡到海盗来了、享物说…仅出现16个月的小程序生态里,诞生了一个又一个“现象级”应用。小程序无需下载安装,相比App有着流量红利,逐步开放的新功能,给零售电商,内容付费等的行业带来了新的创...

陶瓷卫浴卖场扩张须改变模式

陶瓷卫浴卖场扩张须改变模式

受大范围经济氛围的影响,据不完全统计,去年8月至今,北京共有12家各类家居建材卖场宣布关闭,另有几家正在准备撤场或搬迁。虽然撤店、搬迁之由不同,但可以肯定的是,家居行业现状并不乐观,也可以看出终端卖场...

非常奏效的实体店铺运营谋略,痛苦的你,不妨也可以套用试一下

非常奏效的实体店铺运营谋略,痛苦的你,不妨也可以套用试一下

作者:庞刚言商 / 来源:原创。首发站不管是疫情影响,还是移动互联网电子商务的崛起。近几年来,给大家的感受,实体零售业的生意运营,难度系数越来越大了,而且,对赚钱来讲,越发艰难。 市场经济表现出如此...

实体店:引流拓客,其实很简单!

实体店:引流拓客,其实很简单!

缺客,缺客,严重缺客!!! 拓客,拓客,精准拓客!!! 引流,引流,快速引流!!! 实体店老板6大痛点: 1、自我感觉好,属实装逼范! 2、缺钱缺客户,更是缺人才! 3、线下同质化,线上玩不转! 4、...

智能家居实体门店老板如何搭建线上运营体系,实现业绩倍增?

智能家居实体门店老板如何搭建线上运营体系,实现业绩倍增?

编辑 | 小智 出品:智哪儿 前几天是24节气的第3个节气“惊蛰”,《夏小正》曰:“万物出乎震,震为雷,故曰惊蛰。是蛰虫惊出而走矣。”惊蛰意味着天气回暖、春雷始鸣。对于农民来说,惊蛰意味着农业生...

卫浴行业发展新趋势 线上线下的融合共进

卫浴行业发展新趋势 线上线下的融合共进

在互联网电商的热潮发展下,卫浴行业的实体经营受到了冲击,与此同时,通过网购卫浴产品存在一定的局限性,消费者的体验感缺失成卫浴行业发展电商的最大阻碍,只有把这两者融合共进,卫浴行业才能拥抱新的未来。...