Java设计模式之代理模式

来源:互联网 发布:抓包分析软件 编辑:程序博客网 时间:2024/05/19 20:38

1.代理模式的介绍

        我是这么理解代理模式的:大熊突然收到短信说快递到了,但是他现在正在写作业没时间去拿快递,所以他只好委托哆啦A梦帮忙他去拿快递。在这个过程中共出现了代理模式的三个角色,主题接口----即拿快递,是大熊委托哆啦A梦要做的事;真实主题----大熊,想要去拿快递但没时间;代理类----哆啦A梦,真正做事的人。


2.代理模式的结构

       角色作用主题接口定义代理类和真实主题的公共对外方法,也是代理类代理真实主题的方法真实主题真正实现业务逻辑的类代理类用来代理和封装真实主题Main客户端,使用代理类和主题接口完成一些工作


3.代理模式的实现

基于以上设计,IEMSRequest实现如下

public interface IEMSRequest{public String request();}

EMSRequest实现如下,它是一个重量级对象,构造会比较慢。

public EMSRequest implements IEMSRequest{public EMSRequest(){try{Thread.sleep(1000);}catch(Exception e){e.printStackTrace();}}@Overridepublic String request(){return "request string";}}

代理类EMSRequestProxy是轻量级对象,创建很快,用于代替EMSRequest的位置。

public EMSRequestProxy implements IEMSRequest{private EMSRequest real = null;@Overridepublic string request(){//在真正需要的时候,才创建真实独享,创建过程可能很慢if(real == null){real = new EMSRequest();}return real.request();}}

最后,主函数中,他引用IEMSRequest接口,并使用代理类工作。

public class Main{public static void main(String[] args){IEMSRequest q = new EMSRequestProxy();q.request();}}

这就是整个代理模式的介绍。





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 五行金水太旺怎么办 土命人偏偏水多怎么办 小野鸡不吃东西怎么办 宝宝发烧一天一夜不退怎么办 跟老公八字不合怎么办 做俯卧撑胸肌疼怎么办 健身完肌肉酸痛怎么办 不小心杀生了怎么办 名字取得太大了怎么办 麻将馆没客人怎么办 顺丰快递着急怎么办 孕妇吃菠萝过敏怎么办 燕窝炖稀了怎么办 玻尿酸隆鼻变宽怎么办? 三无燕窝被打假 怎么办 喜用神为土应该怎么办 喜用神互相克害怎么办? 姓名总格不好怎么办 姓名学里人格不好怎么办 买家订单下不了怎么办 公积金不够月供怎么办 房贷担保费没交怎么办 营业执照过期1年怎么办 营业执照和公章丢失怎么办 个体户怎么办对公账户 公章法人章丢失怎么办 广州买房没有社保怎么办 辞职后计生关系怎么办 广州换工作社保怎么办 学校更名了盖章怎么办 工商注册资金没有交怎么办 住公司宿舍怎么办居住证 住在公司宿舍怎么办居住证 滴滴没有的车型怎么办 假的租房合同怎么办 代注册公司被骗怎么办 公司跨区迁址怎么办 公司搬走注册地怎么办 注册公司没有房产证怎么办 公司不运营了怎么办 公司注销了账户怎么办