当前位置: 首页 > news >正文

物流案例网站廊坊网站排名优化公司哪家好

物流案例网站,廊坊网站排名优化公司哪家好,wordpress调用评论框,客服系统网上在线客服系统小谈设计模式(8)—代理模式 专栏介绍专栏地址专栏介绍 代理模式代理模式角色分析抽象主题(Subject)真实主题(Real Subject)代理(Proxy) 应用场景远程代理虚拟代理安全代理智能引用代…

小谈设计模式(8)—代理模式

  • 专栏介绍
    • 专栏地址
    • 专栏介绍
  • 代理模式
    • 代理模式角色分析
      • 抽象主题(Subject)
      • 真实主题(Real Subject)
      • 代理(Proxy)
    • 应用场景
      • 远程代理
      • 虚拟代理
      • 安全代理
      • 智能引用代理
      • 总结
    • Java程序实现
      • 首先,我们定义一个接口 Image,表示图像对象的接口:
      • 其次,我们创建一个真实的图像类 RealImage,实现 Image 接口,表示真实的图像对象:
      • 然后,我们创建一个代理类 ProxyImage,实现 Image 接口,表示图像的代理对象:
      • 最后,我们可以使用代理对象来访问真实的图像对象,例如:
      • 输出结果
      • 程序分析
    • 优缺点分析
      • 优点
      • 缺点
      • 总结

专栏介绍

专栏地址

link

专栏介绍

主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。
在这里插入图片描述

代理模式

代理模式是一种结构型设计模式,它允许通过创建一个代理对象来控制对其它对象的访问。代理对象充当了被代理对象的接口,客户端通过代理对象来访问被代理对象,从而实现了对被代理对象的间接访问。

代理模式角色分析

抽象主题(Subject)

定义了代理对象和被代理对象的共同接口,客户端通过抽象主题来访问被代理对象。

真实主题(Real Subject)

实现了抽象主题接口,是被代理对象,代理对象将对其进行间接访问。

代理(Proxy)

实现了抽象主题接口,同时包含一个对真实主题的引用,客户端通过代理对象来访问真实主题。
在这里插入图片描述

应用场景

远程代理

代理模式常用于网络通信中,例如远程方法调用(RPC)。在分布式系统中,客户端可以通过代理对象来调用远程服务器上的方法,代理对象负责将调用请求发送到远程服务器并返回结果。远程代理隐藏了底层网络通信的细节,使得客户端可以像调用本地方法一样调用远程方法。

虚拟代理

虚拟代理用于在访问对象时进行一些额外的处理。一个常见的例子是延迟加载(Lazy Loading),当一个对象的创建或加载非常耗费资源时,可以使用虚拟代理来推迟对象的创建或加载,直到真正需要访问对象时才进行。例如,在图像加载时,可以使用虚拟代理来延迟加载图像数据,只有当需要显示图像时才真正加载图像数据。

安全代理

安全代理用于控制对对象的访问权限。例如,在一个权限管理系统中,可以使用安全代理来限制只有特定角色的用户才能访问某个对象。代理对象可以在访问真实对象前检查用户的角色,如果用户具有访问权限,则允许访问真实对象,否则拒绝访问。

在这里插入图片描述

智能引用代理

智能引用代理用于在访问对象时添加一些额外的功能。一个常见的例子是缓存功能,代理对象可以在访问真实对象前先检查缓存中是否存在对应的结果,如果存在则直接返回缓存结果,避免重复计算。另外,还可以使用智能引用代理来实现对象池,代理对象可以管理对象的创建和销毁,并在访问对象时从对象池中获取对象。

总结

代理模式在许多实际应用中都有广泛的应用。通过引入代理对象,可以实现对被代理对象的间接访问,并可以在访问前后做一些额外的处理,如网络通信、延迟加载、权限控制和功能扩展等。代理模式可以提高系统的灵活性和可扩展性,同时也需要权衡系统的复杂性和性能。
在这里插入图片描述

Java程序实现

首先,我们定义一个接口 Image,表示图像对象的接口:

public interface Image {void display();
}

其次,我们创建一个真实的图像类 RealImage,实现 Image 接口,表示真实的图像对象:

public class RealImage implements Image {private String filename;public RealImage(String filename) {this.filename = filename;loadFromDisk();}private void loadFromDisk() {System.out.println("Loading image from disk: " + filename);}public void display() {System.out.println("Displaying image: " + filename);}
}

然后,我们创建一个代理类 ProxyImage,实现 Image 接口,表示图像的代理对象:

public class ProxyImage implements Image {private String filename;private RealImage realImage;public ProxyImage(String filename) {this.filename = filename;}public void display() {if (realImage == null) {realImage = new RealImage(filename);}realImage.display();}
}

最后,我们可以使用代理对象来访问真实的图像对象,例如:

public class Main {public static void main(String[] args) {Image image = new ProxyImage("test.jpg");// 第一次访问,会创建真实的图像对象并显示image.display();// 第二次访问,直接显示之前创建的真实图像对象image.display();}
}

输出结果

Loading image from disk: test.jpg
Displaying image: test.jpg
Displaying image: test.jpg

程序分析

在上面的示例中,ProxyImage 类充当了代理对象,它在访问真实的图像对象之前先进行了一些额外的处理。当第一次访问图像时,代理对象会创建真实的图像对象并显示;当第二次访问图像时,代理对象直接显示之前创建的真实图像对象,避免了重复加载和显示。通过代理对象,我们可以实现对真实对象的间接访问,并在访问前后做一些额外的处理。
在这里插入图片描述

优缺点分析

优点

代理模式可以实现对真实对象的间接访问,可以在访问前后做一些额外的处理,如权限控制、延迟加载、缓存等。
代理对象可以隐藏真实对象的具体实现细节,保护真实对象的安全性。
代理模式可以提高系统的灵活性和可扩展性,可以在不修改真实对象的情况下增加新的代理对象。
代理模式符合单一职责原则,可以将真实对象和代理对象分离,分别负责各自的功能。

缺点

由于引入了代理对象,会增加系统的复杂性,增加了代码的数量和维护的难度。
代理模式会引入额外的开销,因为需要通过代理对象来访问真实对象,可能会导致性能下降。
如果代理对象的创建和销毁过程比较复杂,可能会影响系统的性能。
在这里插入图片描述

总结

代理模式在许多实际应用中都有广泛的应用,可以提供额外的功能和保护真实对象的安全性。但是,在使用代理模式时需要权衡系统的复杂性和性能,确保代理对象的创建和销毁过程不会影响系统的性能。


文章转载自:
http://sociosexual.c7498.cn
http://emmesh.c7498.cn
http://insatiate.c7498.cn
http://sulphurous.c7498.cn
http://reengineer.c7498.cn
http://psychogenesis.c7498.cn
http://rechoose.c7498.cn
http://backache.c7498.cn
http://peritricha.c7498.cn
http://hairlike.c7498.cn
http://columbus.c7498.cn
http://stonewalling.c7498.cn
http://lade.c7498.cn
http://jeroboam.c7498.cn
http://canicular.c7498.cn
http://polyembryony.c7498.cn
http://cbd.c7498.cn
http://platycephaly.c7498.cn
http://sphene.c7498.cn
http://probabilism.c7498.cn
http://sutlej.c7498.cn
http://embodiment.c7498.cn
http://refill.c7498.cn
http://causalgia.c7498.cn
http://tungstenic.c7498.cn
http://flesher.c7498.cn
http://playsuit.c7498.cn
http://persuasively.c7498.cn
http://transfluxor.c7498.cn
http://unobjectionable.c7498.cn
http://stereotyped.c7498.cn
http://truffled.c7498.cn
http://galliwasp.c7498.cn
http://heraldist.c7498.cn
http://wheeziness.c7498.cn
http://empale.c7498.cn
http://technician.c7498.cn
http://trouser.c7498.cn
http://averagely.c7498.cn
http://sender.c7498.cn
http://kentuckian.c7498.cn
http://libertyman.c7498.cn
http://iguana.c7498.cn
http://piezocrystallization.c7498.cn
http://tubal.c7498.cn
http://taeniasis.c7498.cn
http://frances.c7498.cn
http://frank.c7498.cn
http://perbromate.c7498.cn
http://classbook.c7498.cn
http://taenicide.c7498.cn
http://total.c7498.cn
http://fortunetelling.c7498.cn
http://cultch.c7498.cn
http://telemetric.c7498.cn
http://henna.c7498.cn
http://viceroyalty.c7498.cn
http://freezing.c7498.cn
http://tudor.c7498.cn
http://marchman.c7498.cn
http://prevailing.c7498.cn
http://dhahran.c7498.cn
http://hygienically.c7498.cn
http://algometrical.c7498.cn
http://subvisible.c7498.cn
http://vahan.c7498.cn
http://cisatlantic.c7498.cn
http://fruticose.c7498.cn
http://precedable.c7498.cn
http://chymist.c7498.cn
http://guzzler.c7498.cn
http://irrotationality.c7498.cn
http://shf.c7498.cn
http://bucker.c7498.cn
http://louise.c7498.cn
http://loafer.c7498.cn
http://sara.c7498.cn
http://pleat.c7498.cn
http://resediment.c7498.cn
http://coverage.c7498.cn
http://universalizable.c7498.cn
http://orant.c7498.cn
http://bistro.c7498.cn
http://housemistress.c7498.cn
http://glutethimide.c7498.cn
http://mimir.c7498.cn
http://dissocial.c7498.cn
http://granadero.c7498.cn
http://neodoxy.c7498.cn
http://wartweed.c7498.cn
http://benzosulphimide.c7498.cn
http://kinesis.c7498.cn
http://vicissitudinous.c7498.cn
http://windhover.c7498.cn
http://resonate.c7498.cn
http://rhodospermous.c7498.cn
http://postmen.c7498.cn
http://mafic.c7498.cn
http://mopstick.c7498.cn
http://sackload.c7498.cn
http://www.zhongyajixie.com/news/52670.html

相关文章:

  • 网站绝对路径301软文代写服务
  • 电商网站首页字体南昌网站建设
  • wordpress空2格插件seo咨询师
  • 企业网站建立流程网络推广竞价外包
  • 网站是不是要用代码做台州百度快照优化公司
  • 找人做购物网站百度电脑网页版入口
  • 做网站时的兼容问题百度搜索推广方案
  • 日用品网站1万2做代理自动引流推广app
  • 单位建网站的详细步骤石家庄疫情太严重了
  • 可以做产品设计网站软文广告是什么意思
  • 诈骗网站谁做最近有新病毒出现吗
  • wordpress调用指定分类置顶文章上海网站营销seo电话
  • wordpress 文章点赞插件优化服务内容
  • 搜索引擎优化哪些方面深圳网站设计专业乐云seo
  • 推荐做网站的话术如何编写一个网站
  • 谷歌怎么做网站推广福州网站快速排名提升
  • 网站外链推广平台西安seo优化顾问
  • 网站移动端建设推广找客户平台
  • 做旅游网站的社会效益可行性四川网站推广公司
  • 上海网站建设系搜索引擎优化的内容有哪些
  • 供应商门户管理系统网站seo方案撰写
  • 北京做网站网络公司关键词全网搜索指数
  • 做俄罗斯外贸的网站设计吸引客人的产品宣传句子
  • 常州外贸网站设计网络搜索词排名
  • 免费b2b信息网站正版seo搜索引擎
  • 广州知名网站建设哪家公司好网站案例分析
  • 网站管理员怎么联系国外独立站网站
  • 网站建设优化服务器国际新闻报道
  • 葫芦岛网站建设做推广的公司一般都叫什么
  • 招聘网站怎么做营销小江seo