برنامهنویسی جنبهگرا
برنامهنویسی جنبهگرا (به انگلیسی: Aspect-Oriented Programming) یک پارادایم برنامهنویسی است که پس از برنامه و برای رفع مشکلات آن به وجود آمد. هدف از برنامهنویسی جنبهگرا، مستقل کردن وظایف (در قالب ماژولها) است بهطوریکه کمترین تداخل را در یکدیگر داشته باشند تا نهایتاً بتوان از آنها در برنامههای دیگر نیز استفاده نمود. برای مثال؛ وظیفهٔ احراز هویت در یک برنامه را میتوان به عنوان یک جنبه در نظر گرفت و ماژول جداگانهای برای آن ساخت تا از این پس در تمام پروژههای مشابه بتوان از آن استفاده کرد. بیشتر زبانهای برنامهنویسی، از برنامهنویسی جنبهگرا پشتیبانی خوبی به عمل میآورند. میتوان از آن جمله به جاوا و روش AspectJ اشاره کرد. به عنوان مثال برنامهای را تصور کنید که از ماژولهای مختلفی تشکیل شدهاست و حال میخواهید تمام پرس و جوهای پایگاه داده را در محلی ذخیره نموده و گزارشی تهیه نمایید. بدون استفاده از برنامهنویسی جنبه گرا بایستی در هر ماژول توابع جدید افزوده شوند و در تمام ماژولها ممکن است بخشی از کد تکرار شود. اما با استفاده از برنامهنویسی جنبه گرا شما میتوانید بدون اینکه در ماژولهای دیگر تغییری ایجاد کنید یک ماژول دیگر بنویسید تا به صورت خودکار در ماژولهای دیگر فراخوانی شده و اجرا شود. در این راستا امکان تنظیم اینکه هر متد در ماژول جدید در کدام قسمت از هر ماژول دیگر اجرا شود وجود دارد. شما میتوانید بعد از اتمام اجرای بدنه کد، در تمام متدهای ماژولهای دیگر، متدی با نام LogQuery را از ماژول جدید اجرا نمایید. بدون اینکه کد جدیدی به متدها افزوده شود.
پارادایمهای برنامهنویسی |
---|
|
برای برنامهسازی جنبه گرا میتوان از زبانهای عادی مانند C، C++ یا جاوا استفاده کرد و بخشهایی را برای مشخص کردن قوانین تلاقی به آن اضافه نمود. این مفاهیم شامل برش نقطهای (Point cut) ، نقاط اتصال (Join point) ، ابلاغیه (Advice) و جنبه (Aspect) هستند.
پیوند به بیرون
- Eric Bodden's list of AOP tools in .net framework
- Aspect-Oriented Software Development, annual conference on AOP
- AspectJ Programming Guide
- The AspectBench Compiler for AspectJ, another Java implementation
- Series of IBM developerWorks articles on AOP
- Laddad, Ramnivas (January 18, 2002). "I want my AOP!, Part 1". اینفوورلد. Retrieved 2020-07-20. A detailed series of articles on basics of aspect-oriented programming and AspectJ
- What is Aspect-Oriented Programming?, introduction with RemObjects Taco
- Constraint-Specification Aspect Weaver
- Aspect- vs. Object-Oriented Programming: Which Technique, When?
- Gregor Kiczales, Professor of Computer Science, explaining AOP, video 57 min.
- Aspect Oriented Programming in COBOL بایگانیشده در ۲۰۰۸-۱۲-۱۷ توسط Wayback Machine
- Aspect-Oriented Programming in Java with Spring Framework
- Wiki dedicated to AOP methods on.NET
- Early Aspects for Business Process Modeling (An Aspect Oriented Language for BPMN)
- Spring AOP and AspectJ Introduction
- AOSD Graduate Course at Bilkent University
- Introduction to AOP - Software Engineering Radio Podcast Episode 106
- An Objective-C implementation of AOP by Szilveszter Molnar
- Aspect-Oriented programming for iOS and OS X by Manuel Gebele
- DevExpress MVVM Framework. Introduction to POCO ViewModels