记录反射与this,继承结合来实现AOP思想

举个例子

比如说我们会用到一个BaseServlet作为父类,一众子类来实现更多的扩展功能,但是在一些共用的功能中,如权限控制,统一检查是否登陆,在这种情境下,我们若是使用父类来进行统一的处理,让子类通过继承会方便很多。

但是这样也会有一个问题:比如说在BaseServlet中进行反射时,如果写死是BaseServlet的类对象,哪怕是被继承也没有实际意义,我们需要更灵活的方式来让类对象在被继承的时候去成为相应的子类的类对象,使用this就可以很好的解决我们的问题

Class clz = this.getClass();//class被继承后成为相应的子类Class,而不是BaseServle

接下来的问题是:我们这么麻烦的拿到的类对象有何意义?答案是为了反射        

我们可以通过反射来通过类名方法名去调用某个方法,前提是我们需要获得相应实现类的类对象

总结一下,在这个过程中,我们使用三种工具

1.继承 目的是为了让一些公用的代码在父类中统一进行处理

2.this 在子类继承父类之后,哪怕是在父类中进行的一些有关类对象的操作也可以被继承之后灵活的成为相应子类实现类的类对象,要知道,BaseServlet存在的意义并不是它本身的被调用,而是解耦代码,方便调试;还有真正进行有意义的实现仍然是子类所为。

3.反射 反射可以更方便的拿到类与方法,只要我们知道他们的名字,就可以动态的获取其对象,并进行一些操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值