首页 > 其他分享 >代理模式

代理模式

时间:2023-12-15 18:57:02浏览次数:32  
标签:对象 系统 代理 模式 目标 客户端

用一个代理类将被代理类和别的类分离开,外面的类想访问被代理的类,要走代理类中转。

 

为什么要控制对对象的访问?

一方面,为了节约资源。站在迪米特法则的角度看,如果对于一个非常耗资源的大型对象,如果所有的客户端不管是否使用都去初始化这个对象其实是非常耗资源的。

另一方面,为了系统安全。假设我没有一个可以在系统上运行的命令类,我们正常使用它没有问题,但如果我们想将此程序提供给客户端应用程序,它可能会出现严重问题,因为客户端程序可以发出命令来删除一些系统文件或更改一些您不想要的设置。

优缺点

优点:可以在客户端不知道的情况下控制服务对象,在客户端与目标对象之间起到一个中介作用和保护目标对象的作用,还可以对目标对象的操作做扩展。

缺点:代理模式会造成系统设计中类的数量增加,增加了系统的复杂度;可能会造成请求处理速度变慢

标签:对象,系统,代理,模式,目标,客户端
From: https://www.cnblogs.com/mcyushao/p/17904013.html

相关文章

  • 设计模式:程序员的秘密武器(高手必备)
    在过去的几十年的职业生涯中,我观察到许多同事在技术方面取得了显著的进步和能力提升。然而,随着时间的推移,他们似乎逐渐遇到了一个发展的瓶颈。尽管大家都渴望以最快的速度提升自己的技能水平,但他们忽视了一个关键的因素,那就是内功修炼。是的,我相信大家都知道我们所说的内功心法指......
  • 观察者模式
    观察者模式通常由两个对象组成:观察者和被观察者。当被观察者状态发生改变时,它会通知所有的观察者对象,使他们能够及时做出响应,所以也被称作“发布-订阅模式”。示例代码/***@authorCreatedbynjyon2023/6/1*报纸接口,即被观察者接口*/publicinterfaceNewspaper{/*......
  • 备忘录模式
    [实验任务一]:多次撤销改进课堂上的“用户信息操作撤销”实例,使得系统可以实现多次撤销(可以使用HashMap、ArrayList等集合数据结构实现)。1. 提交源代码2. packagexuni;importjava.util.ArrayList;importjava.util.List;publicclassCaretaker{privateList<Memen......
  • 观察者模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式的动机,掌握该模式的结构;2、能够利用观察者模式解决实际问题。[实验任务一]:股票提醒当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场。1.......
  • 状态模式
    [实验任务一]:银行账户用Java代码模拟实现课堂上的“银行账户”的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态和行为的变化。1. 提交源代码2. publicclassAccount3. {4. privateintuserID;//账号5. privateintpassword;//密码6. priv......
  • 迭代器模式
    迭代器提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。迭代器模式有两个角色,一个是迭代器,一个是聚合器,Java或则c#中的Collection,List,Set,Map就是聚合器。......
  • 命令模式
    命令模式,请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。命令模式有三个角色,一个命令,二是命令接收者,三是命令调用者。像http请求,数据库sql命令都是常见的命令模式。命令模式的意图是将一个请求......
  • 模板方法模式
    模板方法模式是指定义一个操作中算法的骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下即可重定义该算法的某些特定步骤。模板方法主要有两个角色,一个抽象类模板,定义好骨架,第二是实现的子类,实现抽象类模板的抽象方法,和根据需要重写一些方法,其实这也是我......
  • 策略模式
    策略模式有两个主要角色,一个是主类,一个是策略类,通过主类的构造函数将策略类注入到主类,从而实现调用不同的策略。典型的例子就是收银策略,正常收费,八折、五折,满200减50等等。示例代码packagedesignMode.strategy;publicclassCashContext{privateCashSupercashSuper;......
  • 知识|基于混合模式的多余度飞控全数字仿真系统研究
    *余度(Redundancy):一种确保安全的设计手段,使得出现两个及以上故障时,才会引起既定不希望发生的工作状态。飞行控制软件主要完成飞行传感器数据处理、飞行姿态控制和余度管理任务,对保证飞机安全性和可靠性起着关键作用,但是现实中与飞行控制软件相关的研发测试过程依旧举步维艰。其主......