一篇文章带你入门java代理模式
admin
2023-05-01 04:00:21
目录

      Java设计模式-代理模式

      什么是代理模式?

      在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。

      在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。

      所谓的代理严格来讲就是两个子类共同实现一个接口,其中一个子类负责真实业务实现,另一个辅助完成主类业务逻辑操作。

      代理模式

      UML图:

      源代码:

      interface ISubject{//操作主题
      	public void get();//要钱
      }
      class RealSubject implements ISubject{
      	public void get(){
      		System.out.println("还钱");
      	}
      }
      class ProxySubject implements Subject{//代理实现
      	private ISubject sub = null;//真正的操作业务
      	//在创建代理类对象的时候必须设置要代理的真实主题
      	public ProxySubject(Subject sub){
      		this.sub=sub;
      	}
      	public void prepare(){
      		System.out.println("准备讨债工具");
      	}
      	public void destroy(){
      		System.out.println("得到了欠债的费用");
      	}
      	public void get(){	//接口子类一定要实现抽象方法
      		this.prepare();//真实操作之前的准备
      		this.sub.get();//调用真实的业务逻辑
      		this.destroy();//操作之后的收尾工作
      	}
      }
      public class DaiLi{
      	public static void main(String args[]){
      		ISubject sub = new ProxySubject(new RealSubject());
      		//通过代理类对象发出,利用代理类来实现真实的业务
      		sub.get();//讨债的核心操作
      	}
      }
      

      运行结果:

      小结:

      应用实例:

      1、Windows 里面的快捷方式。

      2、猪八戒去找高翠兰结果是孙悟空变的,可以这样理解:把高翠兰的外貌抽象出来,高翠兰本人和孙悟空都实现了这个接口,猪八戒访问高翠兰的时候看不出来这个是孙悟空,所以说孙悟空是高翠兰代理类。

      3、买火车票不一定在火车站买,也可以去代售点。

      4、一张支票或银行存单是账户中资金的代理。支票在市场交易中用来代替现金,并提供对签发人账号上资金的控制。

      5、spring aop。

      优点:

      职责清晰、高扩展性、智能化

      缺点:

      使用场景:

      按职责来划分,通常有以下使用场景:

      1、远程代理。

      2、虚拟代理。

      3、Copy-on-Write 代理。

      4、保护(Protect or Access)代理。

      5、Cache代理。

      6、防火墙(Firewall)代理。

      7、同步化(Synchronization)代理。

      8、智能引用(Smart Reference)代理。

      总结

      本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注趣讯吧的更多内容!

      相关内容

      热门资讯

      世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
      世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
      北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
      春风一拂千山绿 春风轻拂千山绿... 新春对联欣赏1、天意无常顺子自然,万般皆苦唯有自渡。2、门迎百福吉星照,户纳千祥鸿运开。3、一门天赐...