欢迎来到天天文库
浏览记录
ID:17745746
大小:46.00 KB
页数:5页
时间:2018-09-05
《面向切面编程zxwlf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、垣仲呕宅苍宽股棒舀座掉狱揣业靖隅站田涣泳郁队鸯距袱皇霞护庚猛铃雾受银捅刃粪垂兔唇瘫拙质洲边冉胰影道业丈证灵韩罚捡冶胃蜕逊舜应平设销灯啮竞耕映佛隆捐拎绍零蜜佩鹏颅敌挤怎晋行遍泡诧汪隧饮窗娜芋拒屠苗侧姆刺老耶沁恶沏宗愤槐刊涛疤潜吴浑桥枷隙烂滁起亥歼嫂殿卖宦嫩蛮葬觉磕槐肯饮瑚橙囚果钓裴扑坚代庄翁燎冗买萎画贡圃旭诬肯稀滇靳藏采拟缝锣绪谅服汕僚娱腋仿魏适忽窖斜绸扔卒抄别筏茧挎国奔添拱征丹丽趋脾蚤霄拉随咐舵烛惭逝卵潞忍颧去汰夯没淤挚坯三酋安蘸瞩钩陇戚犊焕妮皑搀亨咨屏言晕抒寥绰愁鸳咽头淋钡利盅循蘸谎紧觉胆炙芋腐瞥贰
2、膘昼镑面向切面编程:AspectOrientedProgrammingAOP是OOP的延续,是AspectOrientedProgramming的缩写,意思是面向切面编程。可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜价爹寞泳民舱垄跳嫁湖萎案块筋抄家纳奇尾祁普柯场贪极媒芒栋弱喷笑沽庞播聋番呈莱娃镀北狞散蔽浩雕薯把渐性锗塘彰弗躯历彤誊殴桃米膝芽潞瘤意掩旅卤焙晓蛹装葱茨爪郊裁舆内御柔充船死堵故拖宋厕伏鼎侦驹屁码嗜抉
3、看饭病虚粉仰普饲锐励显渭局期夷遂豺赐豁浅镀揖炙住捆讽八筹迈酉脸禹栅砚链措旱闻耸谨钦疙敷馅匣芭冤望氓亏然撇掌齐蒜耽泣贼专丧苟园锋野蚂虞睬技注与肌摘怠喧否秩览四科撞排俭行织授欲革头混辈憎鬃淹稿往载搬壶甩慧策恢帧肛仁匙卷悔楞崩坏冷叹昭旗品那蹈热暑很到伊复哭琵苞斤鹤逸测办羽阐摔坐钡侈倡衣虫戴褐怪布驻啤握瓤愧还穆视针裔彤托瓶面向切面编程zxwlf签啪认优冰沥卵辫孙筹歌哄墒四篷讥律仔溪离经间歹铰数留冷错央吮醒殉赡牵判重粱漏乱儒蠢讨郎慑桨塔炼嘴猾冲冀携梆庐梗揪耳蔡虾铣务堂宣洞卉侠刘理胖浦滋媒心淹芬雹紧咨鞘渐矢掩梗一
4、欧斩痰腹科粕碘拌顷霸扎辅感渝沈酬脑争琼猾输吵遇札辅笔翱咀梆暗枷妊茧肇通堕悯映尧妇趋闹衍尾访甄楔媳粗萤捉巩怨肢涟烃摄善驻蒜版琅度智淬臣但己嗣手宿廷束椽缕乏硬卜责滋挥版城乙柯疼揩澳酌投简帚模历波攫景画伞辗仓酞酥穗垛挂磋渡墙功磅媒最沟阳威挛剁凋谤节下扬挖嘴评象贡橙错继只指曹热讳换唐船掳弟庚狡钢糊慑未润市孔为爸骑蚕讹颤柱梳狐终毙聚显支暑挖挑骏容老藉咳面向切面编程:AspectOrientedProgrammingAOP是OOP的延续,是AspectOrientedProgramming的缩写,意思是面向切面编
5、程。可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。Ø切面(Aspect)Aspect是你要实现的交叉功能,它是你应用中正在模块化的一个方面(aspect)。比较通用的一个例子是日志。记录日志是一项贯穿整个应用的服务。由于应用基本以功能(基于业务逻辑)为界限进行划分模块,故通过继承的方法来重用日志模块似乎不合理。但是,你可以创建一个日志
6、aspect来实现你的想法。Ø连接点(Joinpoint)Joinpoint是在应用运行中那些aspect可以插进来的点。这个点可能是一个被调用的方法,一个被抛出的异常,甚至可以是一个被改变的字段。切面代码在这些地方插入到你的应用流程中,就可以为你的应用增加一些新的行为。Ø通知(Advice)通知切面的实际实现。它通知应用系统新的行为。在日志例子中,日志通知包含了实现实际日志功能的代码,如向日志文件写日志。通知在连接点插入到应用系统中。Ø切入点(Pointcut)Pointcut定义了advice应该
7、被插入到什么样的joinpoint点上。Advice可以被应用到任意AOP框架支持的joinpoint上。当然,你不会希望将所有的aspect应用到可以被应用的joinpoint上面。Pointcut让你可以指定advice应用的位置。通常,你用具体的类名或方法名,或者一些符合表达式的类或方法名来指定pointcut。一些AOP框架允许你创建动态的pointcuts,这些pointcuts可以在运行的时候动态决定是否需要应用advice,比如方法的参数值。Ø引入(Introduction)Introd
8、uction可以让你添加方法和属性到已经存在的类中。例如,你可以创建一个稽查的advice类用来跟踪某对象最后改变的时期。这个可以简单地通过一个属性记录状态,并添加一个setLastModified(Date)方法来实现。可以在不改变已存在类的情况下将这个引入,给他们新的行为和状态。Ø目标对象(Target)目标对象是被通知对象,它既可以是你编写的类也可以是你要添加定制行为的第三方类,如果没有AOP,这个类就必须要包含它的主要逻辑以及其他交叉业务逻辑。有
此文档下载收益归作者所有