江西城乡建设厅网站,可视化课题组网站建设教程,优秀网站设计案例分析ppt,网站建立分站前言#xff1a;大家好#xff0c;我是小威#xff0c;24届毕业生#xff0c;在一家满意的公司实习。本篇文章将23种设计模式中的代理模式#xff0c;此篇文章为一天学习一个设计模式系列文章#xff0c;后面会分享其他模式知识。 如果文章有什么需要改进的地方还请大佬不…前言大家好我是小威24届毕业生在一家满意的公司实习。本篇文章将23种设计模式中的代理模式此篇文章为一天学习一个设计模式系列文章后面会分享其他模式知识。 如果文章有什么需要改进的地方还请大佬不吝赐教。 小威在此先感谢各位大佬啦~~ 个人主页小威要向诸佬学习呀 个人简介大家好我是小威一个想要与大家共同进步的男人 目前状况24届毕业生在一家满意的公司实习 欢迎大家这里是CSDN我总结知识的地方欢迎来到我的博客我亲爱的大佬 以下正文开始 文章目录 代理模式概念代理模式角色代理模式应用场景代理模式代码案例代理模式小结图书推荐 代理模式概念
代理模式是一种常用的结构性设计模式它可以在不改变原始对象的情况下为对象提供一个代替者或占位符以控制对原始对象的访问。
代理模式分为两种类型静态代理和动态代理。静态代理是指代理类在编译时已经确定并实现而动态代理是指代理类在运行时动态生成的。
代理模式角色
在代理模式中有三个角色 抽象角色定义了真实对象和代理对象的公共接口这样在任何使用真实对象的地方都可以使用代理对象。 真实角色代表了真实对象是我们要使用的对象。 代理角色代表了代理对象它包含了一个指向真实对象的引用从而可以操作真实对象。
代理模式应用场景
代理模式有多种应用场景其中最常见的是远程代理、虚拟代理和保护代理。
远程代理可以隐藏一个对象存在于不同地址空间的事实使得客户端可以像调用本地对象一样调用远程对象。
虚拟代理可以延迟对象的创建只有到真正需要使用对象的时候才会创建这样可以节省系统资源提高程序的运行效率。
保护代理控制对真实对象的访问可以在真实对象被访问前进行权限检查和过滤等操作。
总的来说代理模式可以提高系统的安全性、稳定性和灵活性适用于各种复杂场景下的开发需求。
代理模式代码案例
以下是一个使用Java实现代理模式的例子
首先我们定义一个接口 Image表示一个图片对象其中 display() 方法用于显示图片。
public interface Image {void display();
}然后我们实现一个具体的图片对象类 RealImage其中 display() 方法用于加载并显示图片。
public class RealImage implements Image {private String filename;public RealImage(String filename) {this.filename filename;loadFromDisk();}private void loadFromDisk() {System.out.println(Loading filename);}public void display() {System.out.println(Displaying filename);}
}接下来我们创建一个代理对象类 ProxyImage它持有一个 RealImage 对象并在需要的时候才创建和加载该对象。
public class ProxyImage implements Image {private RealImage realImage;private String filename;public ProxyImage(String filename) {this.filename filename;}public void display() {if (realImage null) {realImage new RealImage(filename);}realImage.display();}
}最后我们可以通过以下方式来测试代理模式的实现
public class ProxyPatternTest {public static void main(String[] args) {Image image new ProxyImage(test.jpg);image.display();System.out.println();// 第二次访问时图片已经被加载过了不再需要重新创建image.display();}
}运行上述代码输出如下 Loading test.jpg Displaying test.jpg Displaying test.jpg 可以看到在第一次访问时代理对象创建了一个真实的图片对象并调用其 display() 方法来加载并显示图片。在第二次访问时代理对象直接调用真实的图片对象的 display() 方法无需再去创建和加载图片。这样代理模式就实现了对真实对象的访问控制和管理。
代理模式小结
代理模式是一种常见的结构性设计模式它通过引入代理角色来控制对真实对象的访问从而增强了系统的安全性、稳定性和灵活性。代理模式分为静态代理和动态代理两种类型应用场景包括远程代理、虚拟代理和保护代理等。
图书推荐
本期推荐书籍为《设计模式可复用面向对象软件的基础典藏版》 业内知名的4人著作本书是引导读者走出软件设计迷宫的指路明灯凝聚了软件开发界几十年设计经验的结晶。 粉丝福利评论区任意留言可参与活动抽奖可评论最多五条抽取三名欧皇
京东自营购买链接点击购买
好了本篇文章就先分享到这里了后续将会继续介绍23种设计模式之其他模式感谢大佬认真读完支持咯~ 文章到这里就结束了如果有什么疑问的地方请指出诸佬们一起讨论 希望能和诸佬们一起努力今后我们顶峰相见 再次感谢各位小伙伴儿们的支持