【设计模式】——代理模式

【代理模式】

代理模式为其他队提供一种代理以控制对这个对象的访问

 

【介绍】

  • 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因,直接访问会给使用者或者系统结构带来很多的麻烦,我们可以在访问此对象时加上一个对此对象的访问层

  • 何时使用:想在访问一个类时做一些控制

  • 如何解决:增加中间层

  • 关键代码:实现与被代理类组合

  • 优点:职责清晰、高扩展性、智能化

  • 缺点:1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢

                2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂

  • 使用场景:1、远程代理:为一个对象在不同的地址空间提供局部代表,这样就可以隐藏一个对象存在于不同地址空间的事实

                2、虚拟代理:根据需求创建开销很大的对象。通过它来存放实例化需求             很                  长时间的真实对象

                3、安全代理:用来控制真是对象访问时的权限

                4、智能引用代理:当调用真实的对象时,代理处理另外一些事

  • 注意事项:1、和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口

               2、和装饰模式的区别:装饰模式增强了功能,而代理模式是为了加以控制

 

【实现】

Subject类,定义了RealSubject和Proxy的公用接口,这样就可以在任意使用RealSubject的地方都可以使用Proxy

 

步骤一:创建一个接口

abstract class Subject

    {

        public abstract void Request();

    }

 

 

步骤二:RealSubject类,定义Proxy所代表的真实实体


 

   class RealSubject:Subject

    {

        public override void Request()

        {

            Console.WriteLine("真实的请求");

        }

    }

 

步骤三:Proxy类,保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口

 

   

 class Proxy:Subject

    {



        RealSubject realsubject;

        public override void Request()

        {

            if (realsubject==null)

            {

                realsubject = new RealSubject();

            }

            realsubject.Request();



        }

    }

步骤四:客户端代码


 

static void Main(string[] args)

        {

            Proxy proxy = new Proxy();

            proxy.Request();

            Console.Read();

           

        }

【总结】

 

代理模式其实就是在访问对象时引入一定程度的间接性,因为这种间接性,可以附加多种用途

代理就是真实对象的代表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值