当前位置: 首页 > news >正文

最专业的佛山网站建设青岛网络优化代理

最专业的佛山网站建设,青岛网络优化代理,nodejs 网站开发,无锡网站建设 app什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道 被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被 代…
什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道
被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被
代理的人能干活呀。
举例子:
比如西门庆找潘金莲,那潘金莲不好意思答复呀,咋办,找那个王婆做代理
类图如下

(1).静态代理

  1. 定义同一种类型的接口
  2. 定义同一种类型接口的实现
  3. 定义代理类

 1.先定义一种类型的女人:

package proxy;/*** * 定义一种类型的女人,王婆和潘金莲都属于这个类型的女人** @author 1* @version 1.0* @description: TODO* @date 2023/8/14 14:43*/
public interface KindWomen {/*** 抛媚眼*/public void makeEyesWithMan();/*** 开心约会*/public void happyWithMan();}

2.实现接口

package proxy;/*** 潘金莲** @author 1* @version 1.0* @description: TODO* @date 2023/8/14 14:45*/
public class PanJinLian implements KindWomen {@Overridepublic void makeEyesWithMan() {System.out.println("潘金莲抛媚眼");}@Overridepublic void happyWithMan() {System.out.println("潘金莲和男人开心约会");}
}

3.定义代理类

package proxy;/*** 代理类* 王婆(帮忙给西门庆代理)** @author 1* @version 1.0* @description: TODO* @date 2023/8/14 14:46*/
public class WangPo implements KindWomen {private KindWomen kindWomen;/*** 王婆默认就是潘金莲的代理*/public WangPo() {this.kindWomen = new PanJinLian();}/*** 王婆可以代理这个类型的所有人** @param kindWomen*/public WangPo(KindWomen kindWomen) {this.kindWomen = kindWomen;}@Overridepublic void makeEyesWithMan() {//实际做事的是代理类this.kindWomen.makeEyesWithMan();}@Overridepublic void happyWithMan() {//实际做事的是代理类this.kindWomen.happyWithMan();}
}

4.找到代理类进行调用

package proxy;/*** 西门庆** @author 1* @version 1.0* @description: TODO* @date 2023/8/14 14:50*/
public class XiMenQing {public static void main(String[] args) {System.out.println("(1)静态代理******************");//西门庆找到王婆,然后王婆就作为代理,帮忙安排了和潘金莲的约会WangPo wangPo = new WangPo();//王婆默认的代理就是潘金莲wangPo.makeEyesWithMan();wangPo.happyWithMan();//传参数执行WangPo wangPo2 = new WangPo(new PanJinLian());wangPo2.makeEyesWithMan();wangPo2.happyWithMan();System.out.println("(2)动态代理******************");KindWomen kindWomen = (KindWomen)new ProxyFactory(new PanJinLian()).getProxyInstance();System.out.println("生成的代理对象"+kindWomen.getClass());kindWomen.makeEyesWithMan();kindWomen.happyWithMan();}
}

(2).动态代理

package proxy;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;/*** @author 1* @version 1.0* @description: TODO* @date 2023/8/14 14:58*/
public class ProxyFactory {//维护一个目标对象 , Objectprivate Object target;//构造器 , 对target 进行初始化public ProxyFactory(Object target) {this.target = target;}//动态生成一个代理对象public Object getProxyInstance() {return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(),new InvocationHandler() { //匿名类重写invoke方法@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("动态代理开始");Object returnVal = method.invoke(target, args);//反射机制调用目标对象的方法System.out.println("动态代理结束");return returnVal;}});}
}

执行结果如下:

http://www.zhongyajixie.com/news/6655.html

相关文章:

  • 网站邮箱接口怎么设置百度竞价搜索
  • 济南装饰行业网站建设漳州网络推广
  • app开发公司靠谱吗重庆seo怎么样
  • 网页设计的主题谷歌seo引擎优化
  • 手机web页面设计网站免费的网站推广软件
  • 网站建设推广实训总结软文写作的十大技巧
  • 网站建设维护合同模板百度云在线登录
  • 现在做网站开发整合营销传播案例分析
  • 外贸网站案例东莞网站提升排名
  • 什么类型的网站比较容易做百度热搜榜今日头条排名
  • 好用的h5网站模板厦门搜索引擎优化
  • 大尺度做爰网站百度网站检测
  • 网站主目录权限配置精准客户运营推广
  • 上海史特做网站多少钱百度指数查询官方网
  • 做搜狗手机网站优化排怎么在百度上推广自己的店铺
  • 简述创建网站的基本流程做推广哪个平台效果好
  • 如何做公证网站网页发布时间建立网站步骤
  • 专业做婚纱摄影网站站长工具果冻传媒
  • 威海做网站的公司哪家好seo网站优化专家
  • 深圳网站建设选哪家好seo顾问服务公司
  • 资源下载类网站源码深圳网络营销推广公司
  • 房产网站定制列举常见的网络营销工具
  • 软件开发网站武汉seo高效优化
  • 优化好的网站做企业网站网站seo顾问
  • 丽水做网站的公司青岛百度整站优化服务
  • 会议网站定制广告行业怎么找客户
  • 乾县住房和城乡建设局网站营销技巧
  • 标准版网站制作株洲seo优化哪家好
  • 同ip网站是怎么做的百度系app
  • 公司建立网站的意义海南百度推广公司