AOP در مقابل OOP
AOP (برنامه نویسی جنبه گرا) و OOP (برنامه نویسی شی گرا) دو پارادایم برنامه نویسی هستند. پارادایم برنامه نویسی یک سبک اساسی از برنامه نویسی کامپیوتری است. پارادایم های برنامه نویسی در نحوه نمایش هر عنصر از برنامه ها و نحوه تعریف هر مرحله برای حل مسائل متفاوت است. همانطور که از نام آن پیداست، OOP بر نمایش مشکلات با استفاده از اشیاء دنیای واقعی و رفتار آنها تمرکز دارد، در حالی که AOP با تجزیه برنامه ها به منظور جداسازی نگرانی های مقطعی سر و کار دارد.
AOP چیست؟
AOP یک پارادایم برنامه نویسی است که با تجزیه یک برنامه به بخش های منسجم عملکرد (به نام نگرانی ها) که در چندین حوزه قطع می شود، به منظور افزایش ماژولار می پردازد.پشتیبانی از انتزاعات (مانند کلاسها، روشها و غیره) برای گروهبندی و محصور کردن نگرانیها در موجودیتهای منحصربهفرد در بسیاری از پارادایمهای برنامهنویسی دیگر ارائه شده است. اما نگرانیها (مانند «Logging») نمونههایی از نگرانیهای مقطعی هستند، زیرا هر بخش ثبتشده از سیستم تحت تأثیر استراتژی مورد استفاده برای ورود به سیستم قرار میگیرد. تمرکز اصلی همه پیادهسازیهای AOP، داشتن عبارات مقطعی مناسب برای ثبت همه نگرانیها در یک مکان واحد است.
OOP چیست؟
در OOP، تمرکز بر تفکر در مورد مسئله ای است که باید حل شود از نظر عناصر دنیای واقعی، و نشان دادن مشکل از نظر اشیا و رفتار آنها. کلاس ها بازنمایی انتزاعی اشیاء دنیای واقعی را به تصویر می کشند. کلاس ها مانند طرح ها یا الگوهایی هستند که موارد مشابه یا چیزهایی را جمع آوری می کنند که می توانند با هم گروه بندی شوند. کلاس ها دارای ویژگی هایی به نام ویژگی ها هستند. ویژگی ها به عنوان متغیرهای سراسری و نمونه اجرا می شوند. متدها در کلاس ها رفتار این کلاس ها را نشان می دهند یا تعریف می کنند.متدها و ویژگی های کلاس ها اعضای کلاس نامیده می شوند. به یک نمونه از یک کلاس یک شی می گویند. بنابراین، یک شی یک ساختار داده است که شباهت زیادی به برخی از شی های دنیای واقعی دارد.
چندین مفهوم مهم OOP مانند انتزاع داده، کپسوله سازی، چندشکلی، پیام رسانی، مدولاریت و وراثت وجود دارد. به طور معمول، کپسولهسازی با خصوصی کردن ویژگیها به دست میآید، در حالی که روشهای عمومی ایجاد میشود که میتوان برای دسترسی به آن ویژگیها استفاده کرد. وراثت به کاربر اجازه می دهد تا کلاس ها (به نام کلاس های فرعی) را از کلاس های دیگر (به نام کلاس های فوق العاده) گسترش دهد. چند شکلی به برنامه نویس اجازه می دهد تا یک شی از یک کلاس را به جای شی ای از کلاس فوق العاده آن جایگزین کند. به طور معمول، اسمهایی که در تعریف مسئله یافت میشوند، مستقیماً به کلاسهایی در برنامه تبدیل میشوند. و به همین ترتیب افعال تبدیل به روش می شوند. برخی از محبوب ترین زبان های OOP جاوا و سی شارپ هستند.
تفاوت بین AOP و OOP چیست؟
تفاوت اصلی بین OOP و AOP در این است که تمرکز OOP بر این است که وظیفه برنامه نویسی را به اشیاء تقسیم کند که داده ها و روش ها را محصور می کند، در حالی که تمرکز AOP این است که برنامه را به نگرانی های مقطعی تقسیم کند..در واقع، AOP رقیبی برای OOP نیست، زیرا از پارادایم OOP بیرون آمده است. AOP OOP را با رسیدگی به چند مشکل خود گسترش می دهد. AOP راههای منظمی را برای پیادهسازی نگرانیهای مقطعی (که ممکن است در چندین مکان در اجرای OOP مربوطه پراکنده شده باشند) در یک مکان معرفی میکند. بنابراین، AOP برنامه را تمیزتر و سست تر می کند.