黑马程序员技术交流社区

标题: 面向方面的编程aop [打印本页]

作者: 聂斌    时间: 2013-4-8 18:13
标题: 面向方面的编程aop
看老师高新视频49时接触的概念面向方面的编程,,,其中使用了代理,,在老师的例子当中,他对每个类创建一个代理里,再把那些切面代码放到代理类当中,这样就实现了对每个类的方法增加功能的目的,,,

我想问的是:

我是否可以写一个类,把这些切面代码放到这个类里面定义,,然后那些代理类继承我这个类,那么代理类就能使用我这个类里面的切面代码,,不过这样会发生问题:就是代理类必须得实现父类的方法,,比如:
代理类:
void name(){
       //代理类增加父类的切面方法,,此时父类的切面代码已经定义好了,那些切面代码不是抽象方法 ,在这里直接调用父类的方法
      fu() ;
      //代理类调用目标类的同名方法
      目标类对象.name();
}

问问大家以上我的做法是否可以,,,我感觉我的做法有点多余了(代理类使用继承貌似有点多余)




作者: 王川    时间: 2013-4-9 00:37
你把装有切面代码的类直接给代理类用不就可以了么。这样,就相当于将添加的功能应用于代理类,而且代理类中的代码和添加进去的功能相互独立。
作者: 聂斌    时间: 2013-4-9 01:31
老师的做法就是那样的,但是我想到这和继承和类似
作者: 黄小贝    时间: 2013-4-9 05:31
没有太理解斌少的意思,试着画个类图试试,但是代理类和被代理类都是继承的同一个类,如果你的东西写在父类,被代理类应该也可以访问,这似乎就不科学了,我们尽量的用组合而不是继承
作者: 聂斌    时间: 2013-4-9 11:04
黄小贝 发表于 2013-4-9 05:31
没有太理解斌少的意思,试着画个类图试试,但是代理类和被代理类都是继承的同一个类,如果你的东西写在父类 ...

呵呵我只是胡思乱想,,,看到老师的视频,我就想到了继承,,,可是对aop这个概念老师只讲了一点点,我并不是很清楚,还并不知道aop具体是怎么应用的,,,老师蜻蜓点水说了下概念




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2