首页 >
观点导向
✍ dations ◷ 2025-01-23 03:25:21 #观点导向
面向切面的程序设计(Aspect-oriented programming,AOP,又译作面向方面的程序设计、剖面导向程序设计)是计算机科学中的一种程序设计思想,旨在将横切关注点与业务主体进行进一步分离,以提高程序代码的模块化程度。通过在现有代码基础上增加额外的通知(Advice)机制,能够对被声明为“切点(Pointcut)”的代码块进行统一管理与装饰,如“对所有方法名以‘set*’开头的方法添加后台日志”。该思想使得开发人员能够将与代码核心业务逻辑关系不那么密切的功能(如日志功能)添加至程序中,同时又不降低业务代码的可读性。面向切面的程序设计思想也是面向切面软件开发的基础。面向切面的程序设计将代码逻辑切分为不同的模块(即关注点(Concern),一段特定的逻辑功能)。几乎所有的编程思想都涉及代码功能的分类,将各个关注点封装成独立的抽象模块(如函数、过程、模块、类以及方法等),后者又可供进一步实现、封装和重写。部分关注点“横切”程序代码中的数个模块,即在多个模块中都有出现,它们即被称作“横切关注点(Cross-cutting concerns, Horizontal concerns)”。日志功能即是横切关注点的一个典型案例,因为日志功能往往横跨系统中的每个业务模块,即“横切”所有有日志需求的类及方法体。而对于一个信用卡应用程序来说,存款、取款、帐单管理是它的核心关注点,日志和持久化将成为横切整个对象结构的横切关注点。切面的概念源于对面向对象的程序设计的改进,但并不只限于此,它还可以用来改进传统的函数。与切面相关的编程概念还包括元对象协议、主题(Subject)、混入(Mixin)和委托(Delegate)。从核心关注点中分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的调用,业务逻辑同特定领域问题的关系通过切面来封装、维护,这样原本分散在在整个应用程序中的变动就可以很好的管理起来。最广为人知的面向切面的编程库是由施乐帕洛阿尔托研究中心开发的AspectJ,该语言可以和Java编程语言结合在一起使用。在.NET Framework的环境,则有透过MSIL动态注入来实现AOP的PostSharp库,但是到3.0版为为止,官方文件中只注明适用于C#与VB.NET,不适用于C++/CLI。“面向切面的程序设计”这一术语出现的具体时间已经不可考证了,但该词是由施乐帕洛阿尔托研究中心的Chris Maeda首先提出的。术语“横切”是由Gregor Kiczales提出的。同许多重大的技术创新一样,面向切面的程序设计也是在不同的地方被独立发展出来。面向切面编程的早期工作主要是由下面几个机构和人员作出的。
相关
- 库鲁病库鲁病(英语:Kuru),是一种不可治愈的退化性人类传染性海绵状脑病(Transmissible spongiform encephalopathy),一般认为其病原体为普里昂蛋白(朊毒体),与克雅二氏病类似。症状主要有头
- 招魂术招魂术(英语:Necromancy)是指一种与死者灵魂沟通的巫术,在人类历史上已经存在一段很长的时间,通常和黑巫术或巫术有所关联。
- 油脂甘油三酯(triglyceride, TG, triacylglycerol, TAG, or triacylglyceride),亦作三酸甘油酯,常称为油脂,为动物性油脂与植物性油脂的主要成分,一种由一个甘油分子和三个脂肪酸分子
- 胚胎胚胎(法语:Embryo)是专指有性生殖而言,是指精子和卵子合成为合子之后,经过多次细胞分裂和细胞分化后形成的有发育成生物成体的能力的雏体。它指的是发育生物学最早的阶段。有性繁
- 水中毒水中毒(Water intoxication)是一个因为人体于短时间内摄取过量水分而产生稀释性低钠症的中毒症状。人体肾脏的持续最大利尿速度是每分钟16毫升,一旦摄取了超过这个速度的水分,过
- 行星际航行行星际航行或行星际旅行指在行星系内的行星之间旅行。实务上,此类的太空航行局限于太阳系内的行星之间。载人飞行的行星际航行必须维持生命保障系统,成本非常高昂;而重量较轻的
- 普莱恩斯普莱恩斯(英语:Plains)是位于美国佐治亚州萨姆特县的城市。根据美国人口调查局2000年统计,共有人口637人,是阿梅里克斯小都市统计区域的一部分。美国第三十九任总统吉米·卡特与
- 维拉特号航空母舰维拉特号(英语:INS Viraat (R22),梵语:विराट,原意为“巨人”)是一艘已经退役的印度海军半人马级航空母舰。维拉特号退役前是印度海军的旗舰,在超日王号航空母舰加入印度后,印
- 以马内利以马内利(希伯来语:.mw-parser-output .script-hebrew,.mw-parser-output .script-Hebr{font-size:1.15em;font-family:"Ezra SIL","Ezra SIL SR","Keter Aram Tsova","Taamey
- 交食周期食的周期是相同的食一再循环发生的时间间隔。食有各种不同的种类,而相同现象的食会再度发生。重复相同食的系列就称为食的系列。当地球和月球与太阳并列时就可能发生食,这时一