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

肇庆企业网站关键词优化教程网站的积分系统怎么做

肇庆企业网站关键词优化教程,网站的积分系统怎么做,域名归属查询,背景视频素材下载免费2019独角兽企业重金招聘Python工程师标准 代理模式 给某一个对象提供一个代理#xff0c;并由代理对象控制对原对象的引用。静态代理 静态代理是由我们编写好的类#xff0c;在程序运行之前就已经编译好的的类#xff0c;此时就叫静态代理。 说理论还是比较懵… 2019独角兽企业重金招聘Python工程师标准 代理模式 给某一个对象提供一个代理并由代理对象控制对原对象的引用。静态代理 静态代理是由我们编写好的类在程序运行之前就已经编译好的的类此时就叫静态代理。 说理论还是比较懵逼的直接上代码 抽象主题可以想象成我们的业务接口。 /*** 抽象主题。* author wushuaiping* date 2018/3/13 下午10:13*/ public interface ISubject {/*** 比如现在有个业务功能需要开启某项校验。*/void enableCheck(); }真实主题可以想象成我们对业务接口的实现类。 /*** 真实主题* author wushuaiping* date 2018/3/13 下午10:21*/ public class RealSubject implements ISubject {public void enableCheck() {System.out.println(我开启了某项校验~~);} }但是有一天我突然想加个日志记录但是我不想去改动原有的方法。那么我们就可以使用这种方式 /*** 代理类* author wushuaiping* date 2018/3/13 下午10:23*/ public class ProxySubject implements ISubject{private ISubject subject;public ProxySubject(ISubject subject){super();this.subject subject;}// 对被代理对象的方法进行增强public void enableCheck() {before();subject.enableCheck();after();}private void before(){System.out.println(我记录一下启动校验前的相关日志。);}private void after(){System.out.println(我记录一下启动校验后的相关日志。);} }我们使用静态代理后来试试看这种方式能不能行测试代码 public class Main{public static void main(String[] args) throws ApiException {ProxySubject proxy new ProxySubject(new RealSubject());proxy.enableCheck();} }运行结果: 我记录一下启动校验前的相关日志 我开启了某项校验~~ 我记录一下启动校验后的相关日志。静态代理模式相对比较简单但是缺点肯定也是有的 一个代理对象只能服务于一个类。如果有很多类需要记录日志的话你的一个一个去实现。。累不死你。。 代理对象必须实现接口如上。一个字还是累。 动态代理 这里动态代理使用的是JDK的动态代理实现的JDK的动态代理必须是目标对象实现接口才可以。也就是相当于我们上面的业务实现类(RealSubject)。使用CGLIB就不用实现接口也可完成动态代理但是今天时间不多了明天还得搬砖所以先把JDK动态代理学了明天再学学CGLIB的动态代理。 代码如下: 要实现动态代理需要先去实现InvocationHandler接口这个接口提供了invoke方法该方法相信用过反射或者AOP的同学应该都比较熟悉我这里就不多讲了。实现了这个后我们可以调用目标方法了但是我们需要代理的对象还不知道从何而来所以我们还需要使用JDK提供的Proxy.newProxyInstance方法第一个参数是目标代理类的类加载器第二个参数是目标代理类实现的接口第三个参数的话是目标代理类的调用处理程序就是InvokeHandler啦。用该方法可以生产代理对象。 /*** 使用Java的动态代理实现* author wushuaiping* date 2018/3/13 下午10:43*/ public class DynamicProxy implements InvocationHandler {private Object target;public Object getProxyInstance(Object target){this.target target;// 使用Java的获取代理实例方法来获取代理实例。。好绕啊。。反正就是获取代理实例-_-return Proxy.newProxyInstance(target.getClass().getClassLoader(),target.getClass().getInterfaces(), this);}// 增强, 调用目标方法public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {before();// 因为我们需要被增强的方法enableCheck是没有返回参数的所以不需要返回值。// 如果有返回值 Object res method.invoke(proxy, args); return res;就可以了method.invoke(target, args);after();return null;}private void before(){System.out.println(操作之前的日志记录~~);}private void after(){System.out.println(操作之后的日志记录~~);} }Test case public static void main(String[] args) throws ApiException {DynamicProxy proxy new DynamicProxy();ISubject subject (ISubject)proxy.getProxyInstance(new RealSubject());subject.enableCheck();}运行结果: 操作之前的日志记录~~ 我开启了某项校验~~ 操作之后的日志记录~~今天的设计模式算是学完啦抽象工厂模式感觉我可能思维不够抽象所以到现在还没能理解抽象工厂模式到底能干嘛实际中有何用处本文用于个人学习记录有写的不好的地方还请各位大佬指点一二 good night 转载于:https://my.oschina.net/u/3152087/blog/1634283
http://www.sadfv.cn/news/128958/

相关文章:

  • 凤阳做网站o2o商城分销网站开发
  • flash网站建设淄博网站建设-至信网络
  • 有做公司网站的吗应遵循哪些原则
  • 专业的网站建设设计广州seo网站排名优化
  • 七冶建设集团网站 江苏东莞企石做网站
  • 深圳坪地网站建设 自助建站 五合一建站平台公司免费网站域名注册
  • 网站验收 流程wordpress小型论坛主题
  • dw个人网站建立教学wordpress图片像素
  • 太原市住房和城乡建设厅网站怎么在网站上做排名
  • 域名注册好如何做网站做网站不如做公众号
  • 兰州城建设计院网站网页设计代码如何写实训报告过程
  • 简单详细搭建网站教程图片下载网站哪个好
  • 建设团购网站怎么做网站在网上能搜到你
  • 做网站域名是什么意思竞价托管哪家专业
  • 浏阳网站开发做付费推广是网站好还是单页面好
  • 地方文明网站建设措施电子商务网站的建设方法
  • 网站织梦模板wordpress七牛
  • 太原做网站的公司wordpress多站点必备插件
  • 企业网站设计理念购物网站可行性分析报告
  • 广安住房和城乡建设厅网站在哪可以找到网站
  • 平湖模板网站建设公司网络营销是什么专业的课
  • 俄语在线网站建设柳市网站制作
  • 怎么构建网站河南平台网站建设设计
  • 广州商城型网站网站建设与制作外包服务
  • 幸福宝推广app网站入口烟台开发区建设业联合网站
  • 湖南建站网站婚恋公司销售好做吗
  • 个人网站制作流程平面设计师需要学历
  • 建筑公司网站设计模板湖州做网站公司
  • 网站做哪家最专业广州企业咨询服务费
  • 博州住房和城乡建设局网站北京赛车网站开发公司