你的位置:首页 > Java教程

[Java教程]JAVA静态代理模式(用生活化的角度理解代码原理)


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

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

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

 1 interface LianJia{//LianJia提供卖房的渠道方法 2   public void sellHouse(); 3 } 4 class HomeMaster implements LianJia{//房主需要通过链家卖房 5   public void sellHouse(){ 6     System.out.println("我有套房子要卖"); 7   } 8 } 9 class Seller implements LianJia{//链家分配卖房代理给房主10   private LianJia lj;//声明链家公司,方便调用方法11   public Seller(LianJia lj){12     this.lj = lj;13   }14   public void sellHouse(){15     lj.sellHouse();//实际实现方式需要调用公司的业务渠道方法16   }17 }18 public class ProxyMode{19   public static void main(String[] args){20     HomeMaster hm = new HomeMaster();21     Seller s = new Seller(hm);//代理代房主实现卖房需求22     s.sellHouse();23   }24 }