1 / 7
文档名称:

AOP面向切面编程.doc

格式:doc   大小:58KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

AOP面向切面编程.doc

上传人:文库旗舰店 2019/9/26 文件大小:58 KB

下载得到文件列表

AOP面向切面编程.doc

相关文档

文档介绍

文档介绍:AOP面向切面编程(AspectorientedProgramming)一、代理的概念和作用1,代理的概念与作用生活中代理:当你想购买一台联想笔记本的时,到百脑汇找到联想的代理商,购买即可。代理可能会送你原装包、鼠标、U盘等等。可以看到,代理不仅可以将这个产品销售给你,而且还会附赠给你相关的东西。2,程序中的代理为目标类(或称被代理的类)的各个方法增加相关一些系统的功能。通过调用代理类对象,不仅可以对目标类对象的方法进行调用,而且可以为其增加一些新的功能。两个问题:(1)如何实现通过代理类对象调用目标类对象的方法?(2)如何完成”而且的功能”的附加?二、AOP(AspectOrientedProgramming)面向切面编程问题2中指出的”而且功能”—附加功能,在程序中经常会遇到。即系统交叉业务。当执行目标类对象方法时希望增加一些系统功能,如:事务功能,日志功能,安全功能。如下图可见:用具体的代码描述交叉业务:method1        method2          method3{          {            {切面1(系统功能类对象提供)切面2(系统功能类对象提供)}          }            }指出:交叉业务编程即为面向切面编程三,利用已学过的知识可以实现假设:定义了如下的目标类,通过反射类的知识,可以在其中插入其他功能代码。puter{publicvoidbuy();}puter{ame="hp6531s";doublepcPrice=;ame(){ame;}ame(ame){=pcName;}publicdoublegetPcPrice(){returnpcPrice;}publicvoidsetPcPrice(doublepcPrice){=pcPrice;}publicvoidbuy(){("电脑:"+pcName+",价格:"+pcPrice);}}lassService{publicstaticvoidactive(){("赠鼠标、贴膜、原装包");}}自定义一个代理类(如何将这个服务插入到这个产品销售中呢?)lassProxy{publicstaticObjectinvoke(StringclassName,Objecttarget,StringmethodName,Class[]parameterTypes){Objecto=null;try{Classc=(className);Methodm=(methodName,parameterTypes);o=(target,parameterTypes);();}catch(ClassNotFoundExceptione){();}catch(SecurityEx