首页 >
观点导向
✍ dations ◷ 2025-02-23 19:01:37 #观点导向
面向切面的程序设计(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提出的。同许多重大的技术创新一样,面向切面的程序设计也是在不同的地方被独立发展出来。面向切面编程的早期工作主要是由下面几个机构和人员作出的。
相关
- 蕈褶蕈褶(英语:lamella, gill),又称菌褶,是担子菌门真菌子实体(担子果)的菌盖内侧的脊状突起,多条脊状突起以蕈柄为中心,一般形成放射状的排列。蕈褶表面有子实层,是担孢子产生之处,子实层
- 阿苯达唑阿苯达唑(英语:Albendazole)商品名称Albenza,化学名:氨基甲酸甲酯,是一种咪唑衍生物类广谱驱肠虫药物,可用于肠梨形鞭毛虫病(英语:giardiasis)、鞭虫病、丝虫病(英语:filariasis)、神经囊
- 恒星动力学恒星动力学是天文物理的一个分支,以统计学的方法介绍恒星在它们共同重力下的集体运动。但重力的长距离效应和恒星系统缓慢的弛豫,阻碍了统计物理方法的使用。一颗恒星在星系或
- 金鸡纳树约25种;另见本文金鸡纳树属(学名:Cinchona,又称作鸡纳树、金鸡勒、奎宁树)为茜草科的一属,约包含25种的物种,树皮和根皮是提取奎宁和奎尼丁的重要工业原料。一般为常绿小乔木,高度约
- 天文单位天文单位(缩写的标准符号为AU,也写成au、a.u.或ua)是天文学上的长度单位,曾以地球与太阳的平均距离定义。2012年8月,在中国北京举行的国际天文学大会(IAU)第28届全体会议上,天文学家
- 托马斯县托马斯县(Thomas County, Georgia)是美国乔治亚州南部的一个县,南界佛罗里达州。面积1,430平方公里。根据美国2000年人口普查,共有人口42,737人,2005年人口为44,692人。县治托马
- 威廉·哈金斯威廉·哈金斯爵士(英语:Sir William Huggins,1824年2月7日-1910年5月12日),英国皇家学会院士,功绩勋章、巴斯勋章得主,是英国最著名的天文学家之一,在1900至1905年间担任皇家学会的主
- 高空风力发电机高空风力发电机(Airborne wind turbine)是一种没有支柱做为结构支撑的设计概念,对比一般风力发电机,其优势是不必制作大型的塔形建筑、集电环与设计偏航机构,就能有效利用更高转
- 咖啡替代品咖啡代用品是指非咖啡,但因为外观、口味类似咖啡,因此用来代替咖啡的产品,多半也不含咖啡因。咖啡代用品的使用可能是因为医药上、经济上或是信仰上的原因,也有可能只是因为无法
- 松崎万长松崎万长(又写为日语:松ヶ崎 萬長 / まつがさき つむなが,1858年10月13日-1921年2月3日),生于日本东京都,建筑家,日本孝明天皇(明治天皇之父)侍从长哲长卿次子。他从7岁开始,就多次奉召