欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA 静态代理模式详解及实例应用

程序员文章站 2024-03-12 08:13:02
java 静态代理模式 代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。 代理模式说白了就是“真实对象”的代表,在访问对象时引入一定程度的间接性,...

java 静态代理模式

代理模式(proxy):为其他对象提供一种代理以控制对这个对象的访问。

代理模式说白了就是“真实对象”的代表,在访问对象时引入一定程度的间接性,因为这种间接性可以附加多种用途。

在这实现代码之前,先讲一个简单的生活故事,我们都知道我们周边有很多公司有房屋买卖或租赁的业务,比如链家(lianjia),但链家本身是不存在任何实际房屋资产的,他所售卖租赁的房屋均需要房屋产权所有人(homemaster)提供,才得以实现公司的房源需求;同时公司要的卖房租房业务均需要公司员工(seller)来实现,但员工要实现该方法,必须经过公司授权以及动用公司的业务资源渠道才可以完成任务。故事讲到这里,我们应该清楚这里的seller其实就是代理模式中静态代理了,那么我们开始该模式的代码书写(这里省略了代理实现方法前后的业务逻辑):

interface lianjia{//lianjia提供房屋买卖的渠道方法(公司业务)
  public void sellhouse();
}
class homemaster implements lianjia{//房主需要通过链家卖房(实现公司的业务渠道)
  public void sellhouse(){
    system.out.println("我有套房子要卖");
  }
}
class seller implements lianjia{//链家的业务需要seller实现
  private lianjia lj;//声明链家公司(可理解为必须证明该seller是链家的),方便调用方法
  public seller(lianjia lj){
    this.lj = lj;
  }
  public void sellhouse(){
    lj.sellhouse();//实际实现方式需要调用公司的业务渠道方法
  }
}
public class proxymode{
  public static void main(string[] args){
    homemaster hm = new homemaster();
    seller s = new seller(hm);//代理代房主实现卖房需求
    s.sellhouse();
  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!