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

如何查询网站的建站工具网站建设模型

如何查询网站的建站工具,网站建设模型,wordpress评论富文本,快速建立网站代理模式 代理模式允许你为其他对象提供一个代理#xff0c;以控制对这个对象的访问。代理模式在不改变实际对象的情况下#xff0c;可以在访问对象时添加额外的功能。 可以理解为代理模式为被代理对象创造了一个替身#xff0c;调用者可以通过这个替身去实现这个被代理对…代理模式 代理模式允许你为其他对象提供一个代理以控制对这个对象的访问。代理模式在不改变实际对象的情况下可以在访问对象时添加额外的功能。 可以理解为代理模式为被代理对象创造了一个替身调用者可以通过这个替身去实现这个被代理对象的功能这个替身也可以为被代理对象增加功能 静态代理 定义 使用时候需要定义接口或者父类。 代理类和委托类有共同的父类或父接口。 案例 首先定义一个接口 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();} } 这说明我们的代理类在实现被代理对象的功能时也拓展了新的功能 但是这样的模式也存在一种缺陷就是我们的代理对象和被调用对象都要实现同一接口或父类可能会出现多个代理类接口如果要增加方法的话会有很多代理类需要维护针对这一问题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();} } 最终输出结果 可以看出我们通过动态代理类实现了对目标对象的功能拓展 链接 java静态代理与动态代理: java静态代理与动态代理
http://www.hkea.cn/news/14321417/

相关文章:

  • 肥城网站制作网站建设费用 优帮云
  • 苏州园区网站设计公司杭州品牌推广
  • 从化哪里做网站好网站维护是什么职位
  • 武威百度做网站多少钱公司网站建设费用估计
  • 重庆网站seo排名更改wordpress主题字体颜色
  • 濮阳公司做网站wordpress物流企业主题
  • h5四合一网站建设wordpress关闭手机主题
  • 网站建设 维护 编程网站页面设计策划书
  • 备案关闭网站墨刀怎么做网站
  • 网站建设高端培训学校微网站建设完 不知道怎么推广咋办
  • 渭南建网站仪征网站建设
  • 工信部网站 登陆有什么网站可以做外贸出口信息
  • 上海做网站推广关键词网站设计制作公司地址
  • 网站产品管理模块wordpress图片页面模板
  • 网站开发的论文怎么写给我看免费观看
  • ftp 网站基于php网站开发环境
  • 营销网站和展示型网站wordpress战队模板
  • 泰兴网站设计新网店怎么免费推广
  • 设置一个网站到期页面北京网站备案拍照
  • 做网站多少钱大概班级优化大师免费下载学生版
  • 一个网站开发的权限ucenter使用自己做的网站
  • 通信建设资质管理信息系统网站网页制作的视频教程
  • 自动做网页的网站几款免费流程图制作软件
  • 低价网站建设咨询万能网页视频下载
  • 公司网站建设合同交印花税吗网站建设面板
  • 有什么做户外活动的网站吗苏州建设网站制作
  • 做一家网站建设微信网站
  • 食品网站网页设计手机app设计软件有哪些
  • 阿里云虚拟主机与网站吗网站设计项目明细
  • 网站的icp备案信息是什么wordpress源程序