| AOP?? ?? ?AOP ?õ???????k?????g?????K??? ???? ????ttg?g?h?????????¼?¼ ?40??ô???I??h????L??????????g??jj???40lC?,??????l???????? ??????h??"?g???g? ?¼?JZ?g ?????????crosscuttingconcern???g?j??'ù???J????g??????g????????g ?i?AspectOrientedProgrammingAOP??AOP??h??L???????????????g??Aspect???????g???Aspect??Aspect ??AOP?L?????hOOP????kh?generalizationspecialization???????AOP????g?DecoratorRole Object??? h??????????????gXerox PARC?hAOP?AsPectJ ?h????????Java???J??Java?AspectJ?Java??AspectJ?hIDE???JbuilderForteJava????AOPAspectJ?http//www.aspectj.org?? ??AOP??L?S????l?£?????RUP?Ivar Jacobson????AOP???AOP?ik??????? AOP? h?(concern)h??,h?????L??h???h?jL???L????hÿ??lL??/???L????????????crosscutting concerns?g??'?i????g?'??o???? AOP?õ???????g?l??? ?????????hAOP??g ?? ????S?'ü??L????û??h???????'??????????????h??L???Ÿ?????"?li??OOP'????h?Kj????¡????????????j¸i?? ????k?ÿhµk?hµk?k?a???ÿµk?'ô?????????k?????????????????????? ???OOPi????OOP?h???????OOP??õ????gg??£AOP?????????h_ ??h? ??h???????gh????L?????????????????L?????????1???g??h?h?? ?2h?L??????ÿ?? ?h????µ???g????????h??gh?g???h???ð????????????ÿh?????????????? h???h?????? public class SomeBusinessClass extends otherBusinessClass{ //?? //?????i?? //?k public void performSomeOperation (OperationInformation info) //?? //??? //?????? //???? //¼'?? //??? //¼? // } //h?? public void save(PersitanceStorage ps){ } public void save(PersitanceStorage ps){ } } J???????lL???performSomeOperation()???£?????????h????????saveload????û???l?g ?? ????g?jl'h?k???????h????h???g????????e???????hn??????h?????????? õj??????õgh????°??? ????g???????????????????????????? ??????g????ñ??g?h'????????g??´?? ???J?????? ????????g?????'ù???K??? ???????????????? ?? hg?????????'øg?h?? ??J?????????????L?ò??L? ?????????j??µ´????g?g????g????????h£h?g?????bug j ??????????h?g???????g??L? 'û??????h?????????hlogger???logger?õ???logger??'l??????£??l????????j????J? ?g?VisitorTemplate Methodg???????h?ovisitortemplate Method???? ?L???÷øg?k??????E J BEnterprise JavaBean????????ûcontainer-managed persistence????B e a n????£???????£ûXML?????û?l??? ?L?????Z???ÿhL?????????g??l???K? ?? õ?????j???????????h????g©???l?????L?????h?????h??¹?gg???????ôh??ô???????? ?????????????L???j???ü¼??????Z??????õk???profile???????profiling???l?????t'÷?i??µ?????'÷? ???????????'??j£??????? ???õ??/??? AOP ?j???g????ôg???????h????A O P??h??k??? AOP ??'h??k???L??? ??????'?z?gg???l???g? OOP????g???h???gAOP??g????aspectOOP??h????? AOP ?? ??????h??g????l???j?ÿ? ????jÿ?? ????????ÿ???ÿ????? ?h???hg??h?L ?h???weaving?integrating'????ÿ?? ??AOP???ÿ?'??¼ÿ????j??  AOPOOP?????k?AOP ÿ????????ÿg??L???????hOOP???? ??hAOP?????L???i?w??AOP?OOP?L??OOP?h??lô??h??h?'OOPOOP?Lh AOP ???hAOP?????????L??????????????h?hAOP?? AOP?? ?L?? hAOP??? ???ÿ?????????????????'ô?CCJAVA? ?????L??????? ?h?????????L???????h??? AOP?? AOPi? l ?? 2 ?????? AOP??ö????? ?????ÿ??????????i ???? '??hJavaAOP?????k?Java???Java?????????? ? ???h???????hJavah???AOPgJavaAOP?'??L???????????justintimek?? AOPlô AOP???J????h?lô g????AOP??ÿ??'ü'????g?g?????g???'??? ????g??????µkµL?????µg??k??'??? ????????'AOP ??????k??? õJ?AOPÿ??g? g???g?h???jg???????????z????ŸõJ?AOP'????h?OOPøá AspectJhJavaAOP? AspectJh?õg?????gXerox PARCgJavaAOP??'java?????Java?? ?AspectJ???÷?µk?µ???hµ????? AspectJ?AspectJi??khAspectJ??Java?????Java???AspectJ?h??Java IDE?? ?AOP AOP???AOP?ÿ????????AOPOOP?AOP?????????OOP??OOP?AOP?õ???'h??AOP???OOP???AOPL???£????L????????????h?????Lh??OOPAOP ?g ?AOP ?????????j?????AOP ???gAOPi???g??????hø? ????????h?AOP???lôAOP?????h_ |