观点导向

✍ dations ◷ 2024-09-29 02:48:51 #观点导向
面向切面的程序设计(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提出的。同许多重大的技术创新一样,面向切面的程序设计也是在不同的地方被独立发展出来。面向切面编程的早期工作主要是由下面几个机构和人员作出的。

相关

  • 罗托卡特语罗托卡特语(Rotokas)是个由大约4000名布干维尔省(布干维尔是巴布亚新几内亚共和国东部的一个岛屿)居民所使用的语言。目前已知罗托卡特语至少有三个方言,它们分别为:中央罗托卡
  • 自变量自变量(英语:independent variable)和控制变量(英语:controlled variable)主要用于指实验时各种会影响实验结果的因素,在实验中,由于各项因素的不确定性与不可预测性,因此需先设定何
  • 帕博利珠单抗帕博利珠单抗(Pembrolizumab,商品名Keytruda,中文商品名为可瑞达、吉舒达)是用于癌症免疫疗法的人源化PD-1单克隆抗体。FDA批准该药用于治疗黑色素瘤、肺癌、头颈癌、霍奇金淋巴
  • 生物统计生物统计学(有时也称生物计量学)是统计学的原理和方法在生物学研究中的应用,是一门应用数学,最常见的是应用于医学。在生物学、医学、农学等的研究中,合理地进行调查或实验设计,科
  • 克劳德·贝托莱克劳德·路易·贝托莱(法语:Claude Louis Berthollet,1748年12月9日-1822年11月6日),法国化学家。贝托莱生于萨伏依公国的Talloires(现属法国上萨瓦省,在省会阿讷西附近)。1768年在都
  • 贫血症贫血(英语:anemia, anaemia,拉丁语:anæmia)通常定义为血液中红血球或血红素总数量下降的情形;也可以被定义为血液携带氧气能力下降的情况。当贫血慢性发作时,其症状往往不明显,可能
  • 桑贾尔阿齐兹·桑贾尔(土耳其语:Aziz Sançar,1946年9月8日-),土耳其人,具有土耳其美国双重国籍。生物化学家和分子生物学家,专门从事DNA修复、细胞周期检查点、生物钟方面的研究。他是土
  • 胚胎植入前遗传筛选胚胎植入前遗传筛选(英语:preimplantation genetic screening,简称PGS)是一种优生学技术,配合试管婴儿使用,该技术能筛查胚胎的潜在疾病基因,将有问题的胚胎提早销毁,只留下无问题的
  • 白族白族是中国西南少数民族,列中国第15大民族。云南、贵州、湖南和湖北四省是现代白族世居地。白族自称“白伙”(白语:Baipho,白族)、“白子”(剑川Baipzix,大理Baipzi,白族男人)、“白
  • 城市蔓延城市蔓延(英语:Urban sprawl),或称郊区蔓延(Suburban sprawl),俗称摊大饼,是指郊区城市化过程中,城市人口大幅向外发展,侵占城市边缘的乡郊地区并形成低密度、单功能,且通常依赖小汽车