手机版
你好,游客 登录 注册
背景:
阅读新闻

Java静态代理模式(从现实生活角度理解代码原理)

[日期:2016-12-22] 来源:Linux社区  作者:panhouye [字体: ]

代理模式(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();
    }
}

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/138649.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款