这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » Java开发之ProxyPattern代理模式详解

共4条 1/1 1 跳转至

Java开发之ProxyPattern代理模式详解

助工
2020-11-26 10:53:35     打赏

今天扣丁学堂Java培训之详细介绍首代理模式,首先ProxyPattern(即:代理模式),23种常用的面向对象软件的设计模式之一。

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

优点

(1).职责清晰

真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。

(2).代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了的作用和保护了目标对象的作用。

(3).高扩展性

结构

一个是真正的你要访问的对象(目标类),另一个是代理对象,真正对象与代理对象实现同一个接口,先访问代理类再访问真正要访问的对象。

案例代码

举个例子,假如说你走在大街上捡到一张小卡片,上面有一个美女头像和一个电话号码,上面写着招聘保姆请拨打该电话,于是你拨打电话,电话那头不是美女小姐姐在接电话,而是一个老大妈在接电话,跟你商量招聘保姆的价格,那这个老大妈我们可以认为是美女小姐姐的代理对象,用手动代理的方式来模拟一下。一不小心开了个车,听不懂的就算啦。。。

目标类和代理类所实现的接口代码

packagecom.proxy;

publicinterfaceWorkInter{

voidworkInNight(doublemoney);

voidworkInDay(doublemoney);

}

目标类代码

packagecom.proxy;

publicclassXJJimplementsWorkInter{

    @Override

    publicvoidworkInNight(doublemoney){

    System.out.println("滴滴滴~~~夜班干活啦");

    }

    @Override

    publicvoidworkInDay(doublemoney){

    //TODOAuto-generatedmethodstub

    System.out.println("滴滴滴~~~干活啦");

    }

}

代理类代码

packagecom.proxy;

publicclassXJJProxyimplementsWorkInter{

    privateXJJxjj;

    publicXJJProxy(){

    xjj=newXJJ();

    }

    @Override

    publicvoidworkInNight(doublemoney){

    //TODOAuto-generatedmethodstub

    }

    @Override

    publicvoidworkInDay(doublemoney){

    System.out.println("代理收取提成"+(money/2));

    xjj.workInDay(money/2);//小姐姐在干活

    System.out.println("完事送回家");

    }

}

测试类代码

classQiangGeTest{

    publicstaticvoidmain(String[]args){

    WorkInterxjjProxy=newXJJProxy();//创建代理类对象

    xjjProxy.workInDay(200);

    }

}



高工
2020-12-06 22:45:16     打赏
2楼

感谢分享


工程师
2021-01-05 22:51:36     打赏
3楼

感谢您的分享


工程师
2021-01-06 23:51:15     打赏
4楼

感谢分享


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]