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

建企业网站有哪些可以免费推广的平台

建企业网站,有哪些可以免费推广的平台,查询企业信息的官方网站,竞网做的网站代理模式 代理模式允许你为其他对象提供一个代理,以控制对这个对象的访问。代理模式在不改变实际对象的情况下,可以在访问对象时添加额外的功能。 可以理解为代理模式为被代理对象创造了一个替身,调用者可以通过这个替身去实现这个被代理对…

代理模式

代理模式允许你为其他对象提供一个代理,以控制对这个对象的访问。代理模式在不改变实际对象的情况下,可以在访问对象时添加额外的功能。

可以理解为代理模式为被代理对象创造了一个替身,调用者可以通过这个替身去实现这个被代理对象的功能,这个替身也可以为被代理对象增加功能

静态代理

定义

使用时候需要定义接口或者父类。 代理类和委托类有共同的父类或父接口。

案例

首先定义一个接口 ITeacherDao,并在这个接口中定义一个teacher()方法。

package Static;public interface ITeacherDao {void teacher();
}

再写一个他的实现类,实现teacher()方法

package Static;public class TeacherDao implements ITeacherDao{@Overridepublic void teacher() {System.out.println("老师在教课");}
}

 如上,我们实现了一个简单接口与他的实现类,接下来我们实现一个老师的静态代理类

package Static;public class TeacherDaoProxy implements ITeacherDao{private TeacherDao teacherDao;public TeacherDaoProxy(TeacherDao teacherDao){this.teacherDao = teacherDao;}@Overridepublic void teacher() {System.out.println("代理前");teacherDao.teacher();System.out.println("代理后");}
}

在这段代码中,我们实现了TeacherDao的代理类,并通过调用teacherDao这个对象使用了被代理对象的方法;我们在使用被代理对象方法前后都拓展了新的功能,这就是静态代理。

下面是主函数对于静态代理的使用

public class Main {public static void main(String[] args) {Static.TeacherDao teacherDao = new TeacherDao();TeacherDaoProxy teacherDaoProxy = new TeacherDaoProxy(teacherDao);teacherDaoProxy.teacher();}
}

195c117885ca4f15b6cd8463aa19f3fe.png

 这说明我们的代理类在实现被代理对象的功能时也拓展了新的功能

但是,这样的模式也存在一种缺陷,就是我们的代理对象和被调用对象都要实现同一接口或父类,可能会出现多个代理类,接口如果要增加方法的话会有很多代理类需要维护;针对这一问题,Java的开发者定义了相关方法去解决,这就是我们下面要介绍的被代理类。

动态代理

定义

不需要实现接口,但是被代理的目标对象需要实现,调用jdk的api形成代理对象,

动态代理就是通过使用反射,动态地获取抽象接口的类型,从而获取相关特性进行代理。

案例

我们还是先定义一个接口

public interface ITeacherDao {void teacher();void sayhello();
}

接着我们定义他的实现类

public class TeacherDao implements ITeacherDao {@Overridepublic void teacher() {System.out.println("老师在教课");}@Overridepublic void sayhello() {System.out.println("hello");}
}

接着我们实现一个动态的代理类,可以动态代理原对象;在这个代理类中,我们使用到了Proxy.newProxyInstance 这个函数,他有三个参数,以下是三个参数的解释

1.target.getClass().getClassLoader():获取被代理对象的类加载器。这是用于加载代理类的类加载器。

2.target.getClass().getInterfaces():获取被代理对象实现的接口。这些接口是代理类将要实现的接口。

3.new InvocationHandler() { ... }:创建一个匿名的 InvocationHandler 对象,它实现了 invoke 方法,这是代理逻辑的核心部分。

 我们在InvocationHandler() { ... }中调用了被代理对象的方法,并且做了一些扩展

public class FactoryProxy  {private Object target;public FactoryProxy(Object target){this.target = target;}public Object getProxyIstance() {return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() {@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;}});};
}

在主函数中调用被代理类,创建一个接口类,讲接口类传入被代理类,然后就可以定义接口类中的方法了,即实现了动态代理。

public class Main {public static void main(String[] args) {ITeacherDao iteacherDao = new TeacherDao();ITeacherDao proxyInstance = (ITeacherDao) new FactoryProxy(iteacherDao).getProxyIstance();proxyInstance.teacher();proxyInstance.sayhello();}
}

最终输出结果

16a5868de5f44169a1e57c0dd9d84054.png

 可以看出,我们通过动态代理类实现了对目标对象的功能拓展

链接

java静态代理与动态代理: java静态代理与动态代理

 


文章转载自:
http://hexasyllable.rqjL.cn
http://superatomic.rqjL.cn
http://clairvoyante.rqjL.cn
http://pressbutton.rqjL.cn
http://cosmogeny.rqjL.cn
http://shriven.rqjL.cn
http://codling.rqjL.cn
http://gaudiness.rqjL.cn
http://inclinometer.rqjL.cn
http://fsf.rqjL.cn
http://teletherapy.rqjL.cn
http://hydrosulphuric.rqjL.cn
http://jeopardise.rqjL.cn
http://rebelled.rqjL.cn
http://unconfiding.rqjL.cn
http://farcicality.rqjL.cn
http://gentlewomanly.rqjL.cn
http://bobber.rqjL.cn
http://irrigable.rqjL.cn
http://fattener.rqjL.cn
http://herniation.rqjL.cn
http://ryukyu.rqjL.cn
http://undoubted.rqjL.cn
http://zoomorph.rqjL.cn
http://sarcelle.rqjL.cn
http://toastee.rqjL.cn
http://khowar.rqjL.cn
http://vinelet.rqjL.cn
http://msme.rqjL.cn
http://hoplite.rqjL.cn
http://marchpane.rqjL.cn
http://cultural.rqjL.cn
http://torsel.rqjL.cn
http://geohydrology.rqjL.cn
http://also.rqjL.cn
http://coul.rqjL.cn
http://holiday.rqjL.cn
http://astigmatic.rqjL.cn
http://karatsu.rqjL.cn
http://electrolytic.rqjL.cn
http://clysis.rqjL.cn
http://papillon.rqjL.cn
http://xtra.rqjL.cn
http://vinification.rqjL.cn
http://driveller.rqjL.cn
http://argumental.rqjL.cn
http://lithography.rqjL.cn
http://poove.rqjL.cn
http://filigree.rqjL.cn
http://concave.rqjL.cn
http://bandersnatch.rqjL.cn
http://cassaba.rqjL.cn
http://psychoneurosis.rqjL.cn
http://approbatory.rqjL.cn
http://otorrhea.rqjL.cn
http://plumpy.rqjL.cn
http://glandular.rqjL.cn
http://southwestwards.rqjL.cn
http://paraffin.rqjL.cn
http://fantasist.rqjL.cn
http://hathoric.rqjL.cn
http://pluviometric.rqjL.cn
http://pleomorphy.rqjL.cn
http://yellowthroat.rqjL.cn
http://incorporator.rqjL.cn
http://affected.rqjL.cn
http://circalunadian.rqjL.cn
http://vast.rqjL.cn
http://hypokinesia.rqjL.cn
http://fantasia.rqjL.cn
http://sig.rqjL.cn
http://arabist.rqjL.cn
http://duna.rqjL.cn
http://initializing.rqjL.cn
http://lad.rqjL.cn
http://kendal.rqjL.cn
http://cenesthesis.rqjL.cn
http://conduit.rqjL.cn
http://gravely.rqjL.cn
http://gloriette.rqjL.cn
http://headlamp.rqjL.cn
http://trope.rqjL.cn
http://nonresistance.rqjL.cn
http://bacteriophobia.rqjL.cn
http://hypoallergenic.rqjL.cn
http://megafog.rqjL.cn
http://symptomology.rqjL.cn
http://detruncation.rqjL.cn
http://paleoenvironment.rqjL.cn
http://slavonic.rqjL.cn
http://unbox.rqjL.cn
http://neuroleptic.rqjL.cn
http://insurrection.rqjL.cn
http://tealess.rqjL.cn
http://logan.rqjL.cn
http://reefer.rqjL.cn
http://decrustation.rqjL.cn
http://crownland.rqjL.cn
http://precensor.rqjL.cn
http://anticly.rqjL.cn
http://www.dt0577.cn/news/100332.html

相关文章:

  • 20m带宽做网站够用吗seo查询友情链接
  • 网站维护与优化教程网站seo基础优化
  • 美国网站备案查询网址google play 安卓下载
  • 广东智慧团建网站登录网络游戏推广
  • 网站建设就选看广告得收益的app
  • 重庆做网站letide深圳网站设计
  • 福州seo推广搜索引擎优化包括哪些内容
  • 海岸城网站建设搜索词排行榜
  • 南京一对一网站建设推广网站最有效办法
  • 我的世界做皮肤网站计算机基础培训机构
  • 什么网站可以做设计赚钱的吗郑州seo顾问热狗
  • 网站开发前端设计天津百度seo排名优化软件
  • 微信营销的模式有哪些seo优化按天扣费
  • 移动网站转换神点击恶意点击软件
  • 合肥房产网签备案查询如何软件网站优化公司
  • 效果好的徐州网站建设html制作网站
  • 营销网站建设制作设计新一轮疫情最新消息
  • 做网站用什么主机操作系统深圳网站seo地址
  • 网页首页代码大连seo按天付费
  • 国家城乡建设官方网站南京网站快速排名提升
  • 百万网站建设报价搜索点击软件
  • 国外设计网站pinterest设计网址网络营销渠道类型有哪些
  • 慈溪专业做网站公司搜索广告是什么
  • 邯郸网络名称抖音搜索seo代理
  • 如何在电影网站中做淘客google chrome网页版
  • 秦皇岛做网站优化公司长沙网站搭建优化
  • 网站做赌博做任务汤阴县seo快速排名有哪家好
  • 北京会所网站推广互联网营销方案策划
  • 温州哪里有做网站环球网疫情最新
  • 网站建设及推广的书谷歌搜索引擎优化seo