A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 聂斌 中级黑马   /  2013-4-8 18:13  /  1422 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看老师高新视频49时接触的概念面向方面的编程,,,其中使用了代理,,在老师的例子当中,他对每个类创建一个代理里,再把那些切面代码放到代理类当中,这样就实现了对每个类的方法增加功能的目的,,,

我想问的是:

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

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



评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

4 个回复

倒序浏览
你把装有切面代码的类直接给代理类用不就可以了么。这样,就相当于将添加的功能应用于代理类,而且代理类中的代码和添加进去的功能相互独立。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
老师的做法就是那样的,但是我想到这和继承和类似
回复 使用道具 举报
没有太理解斌少的意思,试着画个类图试试,但是代理类和被代理类都是继承的同一个类,如果你的东西写在父类,被代理类应该也可以访问,这似乎就不科学了,我们尽量的用组合而不是继承
回复 使用道具 举报
黄小贝 发表于 2013-4-9 05:31
没有太理解斌少的意思,试着画个类图试试,但是代理类和被代理类都是继承的同一个类,如果你的东西写在父类 ...

呵呵我只是胡思乱想,,,看到老师的视频,我就想到了继承,,,可是对aop这个概念老师只讲了一点点,我并不是很清楚,还并不知道aop具体是怎么应用的,,,老师蜻蜓点水说了下概念
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马