java设计模式之代理模式:
发布网友
发布时间:2022-04-29 20:34
我来回答
共3个回答
懂视网
时间:2022-05-06 09:50
代理模式:为其他对象提供一种代理以控制对这个对象的访问。
还是来个图表示一下:
这里设想了一个简单的卖房子的场景。在没有代理的情况下,房子的拥有者想要卖房子,需要自己发布信息,带买家看房,办理交接手续等事情。这时候房主发现这样太麻烦了。于是他请来了代理HouseProxy,代理负责除必须房主参加的办理手续之外的所有事情。
这正是代理模式应用场景中的:智能指引,指当调用真实的对象时,代理处理另外的一些事情。
对比装饰模式,感觉非常相近,所以才会有之前一直提到的文章。代理模式感觉是一个代理处理了所有其他的事情,装饰模式是需要一系列各种各种的“能人”,各取所长。
实现代码很简单了:
/**
* Created by OneCoder on 2014/11/24.
*/
public class HouseOwner implements ISellHouse {
@Override
public void sellHouse() {
System.out.println("Sell my house.") ;
}
}
/**
* Created by OneCoder on 2014/11/24.
*/
public class HouseProxy implements ISellHouse {
private ISellHouse seller;
public HouseProxy(ISellHouse seller) {
this.seller = seller ;
}
@Override
public void sellHouse() {
System.out.println("Proxy: Publish the information.");
System. out.println("Proxy: Contact the buyer.");
seller.sellHouse();
System. out.println("Proxy: Get commision.");
}
}
似乎没什么可说的,OneCoder自我感觉是可以区分和使用这两种设计模式了,目的达到了。
PS:
1、最近博客更新的比较慢,家里的事情比较多,不过学习是一定要坚持的,哪怕是龟兔赛跑,我也在前进。
2、博客最近流量超标(15G/月),原因是遭到来自IP:114.215.138.184(爱论文网?)的不间断爬取。精力有限,经济有限(已经又充了流量。),所以,OneCoder准备慢慢把博客完全搬家到github.io上,这个过程也许很漫长。。。
爬虫可以。。。没完没了的爬。。就不必了吧。。。。
原文地址:乱学设计模式——代理模式, 感谢原作者分享。
热心网友
时间:2022-05-06 06:58
很简单:对外部提供统一的接口方法,而代理类在接口中实现对真实类的附加操作行为,从而可以在不影响外部调用情况下,进行系统扩展。也就是说,我要修改真实角色的操作的时候,尽量不要修改他,而是在外部在“包”一层进行附加行为,即代理类。
例如:接口A有一个接口方法operator(),真是角色:RealA实现接口A,则必须实现接口方法operator()。客户端Client调用接口A的接口方法operator()。
现在新需求来了,需要修改RealA中的operator()的操作行为。怎么办呢?如果修改RealA就会影响原有系统的稳定性,还要重新测试。这是就需要代理类实现附加行为操作。创建代理ProxyA实现接口A,并将真实对象RealA注入进来。ProxyA实现接口方法operator(),可以增加附加行为,然后调用真实对象的operator()。从而达到了“对修改关闭,对扩展开放”,保证了系统的稳定性。我们看客户端Client调用仍是接口A的接口方法operator(),只不过实例变为了ProxyA类了而已。
建议看看《软件秘笈:设计模式那点事》,当中讲解的很详细,例子也很生动,读了收获很大!希望以上内容对你有帮助!
热心网友
时间:2022-05-06 08:16
汗... 尽然是代理对象,那么在实际传值的时候传的是代理对象啦。要不然就没什么意义了。然而以面向接口编程的思想来说,方法的参数应该是接口类型的才对。这样代理对象就必须实现和真实对象一样的接口啦。
java代理模式
答案:Java代理模式是一种设计模式,它通过代理对象控制真实对象的访问,使得对真实对象的访问更加灵活、更具控制性。它主要被用来扩展对象的功能,同时保持原有功能的实现不变。代理模式分为静态代理和动态代理两种形式。详细解释:1. 概念及作用:Java代理模式的核心是代理对象,它代表了真实对象并提供对其...
代理模式简介
在Java的设计模式中,有一个重要的模式被称为代理模式,它位于23种经典设计模式之一。简单来说,代理模式的核心概念是创建一个代理对象,这个代理对象负责管理和控制对原始对象(目标对象)的访问。在实际应用中,代理模式常常用于解决一些特定的问题。例如,当一个对象由于性能、安全、地理位置等因素不宜直...
设计模式--代理模式
代理模式: 一个设计模式的瑰宝,它通过提供一个“替身”来控制对原始对象的访问,从而扩展和增强其功能。这种模式在远程对象、复杂操作或需控制的对象中大放异彩。代理模式有三种形式:静态代理、动态代理(JDK代理和Cglib代理)和智能代理。静态代理需要共享接口或父类,而动态代理如JDK代理,无需接口约束...
java代理是什么意思?
Java代理是一种常见的设计模式,通常用于在不改变原始代码的情况下修改对象的行为。代理可以以透明的方式为对象添加额外的功能,例如在对象执行方法前后执行其他操作,或者对对象方法进行过滤、缓存或限制访问。Java代理可以用于创建本地或远程代理对象,以扮演另一个对象的角色。Java中常见的代理类型有两种:静...
设计模式之代理模式,以及代理模式在 React 中的应用_百度...
代理模式在React中有着广泛的应用,包括懒加载组件、权限控制、缓存组件结果、管理状态等。通过高阶组件、懒加载库或状态管理库,代理模式帮助优化组件行为,提升性能和维护性。总结而言,代理模式是设计模式中的一种结构模式,通过代理对象控制对真实对象的访问,实现多种功能,如懒加载、权限控制、缓存和...
带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式
设计模式是代码设计的最佳实践,用于提高代码的可重用性和可理解性。代理模式通过代理对象控制对本体对象的访问,例如演唱会门票黄牛,展现了在无法直接访问时的间接访问。有五种常见代理形式,包括远程代理、虚拟代理、保护代理、缓存代理和智能引用。以远程代理为例,Go语言中通过net/rpc实现,如将消息处理...
一文搞懂设计模式之代理模式
代理模式概述GoF对代理模式的定义是:为一个对象提供一个代理,以控制对原始对象的访问。简单来说,代理模式是一种结构型设计模式,它允许通过代理对象间接访问服务提供者,同时在请求前后执行额外操作,如权限验证、性能优化等。代理模式的应用场景想象一下,你热衷海外购物,需要频繁往返韩国买化妆品,美国...
Java常用的几种设计模式
4.观察者设计模式 所谓观察者模式,举个例子现在许多购房者都密切观察者房价的变化,当房价变化时,所有购房者都能观察到,以上的购房者属于观察者,这便是观察者模式。java中可以借助Observable类和Observer接口轻松实现以上功能。当然此种模式的实现也不仅仅局限于采用这两个类。5.适配器模式 如果一个类...
什么是代理模式?(java中的)
为其他对象提供一种代理以控制对这个对象的访问.代理是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理.详细可参考java设计模式手册 ...
Java 23 种设计模式的通俗解释,看完秒懂
代理模式 通过代理模式为聊天添加程序,自动回应特定问题,避免重复输入,代理模式封装真实主题对象引用。责任链模式 向MM传递纸条,依次传递直至某人决定处理,责任链模式允许请求在对象间传递,系统动态调整责任分配。命令模式 用COMMAND封装MM指示,代理传递至我,执行指令并反馈,简化指令接收与执行过程,支持...