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

郑州网站建设 58校园网站建设论文

郑州网站建设 58,校园网站建设论文,好用app制作,贵阳seo网站建设什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道 被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被 代…
什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道
被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被
代理的人能干活呀。
举例子:
比如西门庆找潘金莲,那潘金莲不好意思答复呀,咋办,找那个王婆做代理
类图如下

(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.yayakq.cn/news/860179/

相关文章:

  • 网站建设的一些名词上海商城网站建设公司
  • 贵州水利建设官方网站丽水市住房和城乡建设局网站
  • 什么网站算是h5做的怎么做网站接口
  • 做网站找个人中集建设集团有限公司网站
  • erp .net网站开发灯塔网站seo
  • python做网站性能查询域名信息
  • 百度商桥接入网站网站建设运营服务商
  • 为什么用wp做网站手工制作书签
  • 东莞做商城网站建设旅游订房网站开发需求文档
  • 网站漏扫网站外链有什么用
  • 湖州做网站公司哪家好wordpress 交易插件
  • 软膜做网站有用吗移动端公众号网站开发
  • 网站备案填写电话号码天元建设集团有限公司股份
  • 国外外贸平台哪个网站最好容桂电子商务网站建设
  • 企业网站数据库怎么改网站模块
  • 专业做数据的网站诸城网站做的好的
  • wordpress如何搬站免费设计装修网站
  • 网页设计比较好的网站西安网站建设方案
  • 站长工具 怎么做网站地图网站建设 会计科目
  • 网站模版开发怎么自己改自己做的网站的图片
  • 做网站_接活软件公司做网站
  • 广西建设厅网站公布WordPress论坛推广插件
  • 会做网站怎么赚钱代前导页的网站
  • 网站建设长春西宁做网站建设公司
  • 网站页面设计成品下载商家管理系统
  • 加拿大pc网站搭建没有域名的网站
  • 茶叶网站源码二次开发什么意思
  • wordpress盗版模板网站换域名seo怎么做
  • 网站申请淮南服装网站建设地址
  • 西安创意网站建设广西做网站找谁