تفاوت برنامه نویسی OOP و DOP

در این مبجث تفاوت بین دو روش برنامه نویسی OOP و DOP مورد بررسی قرار خواهد گرفت.

 برنامه نویسی OOP

همانطور که از نام آن پیداست، در فضای مسئله، این نوع برنامه نویسی تمرکز بر روی تعریف، تولید و پردازش اشیا دارد.مسئله مهم در این رویکرد عبارتند از:

1- ایجاد اشیا Object creation

2-تعیین انواع داده اختصاص یافته به هر کلاس(Property)

3- مشخص کردن رفتار های یک کلاسMethod

اشیا ایجاد شده با سایر اشیا توسط Interface یا رابط های عمومی ارتباط برقرار می کنند.

تفاوت OOP و DOP
تفاوت OOP و DOP

یکی از بزرگترین مزیت های شی گرایی، نزدیک بودن نگاه آن در هنگام حل مسئله به دیدگاه دنیای واقعی است.این موضوع سبب صرفه جویی در زمان برای تحلیل فضای مسئله می شود. به عنوان مثال با آگاهی از اینکه یک کلاس میز وجود دارد، و در دنیای واقعی ما میز را میشناسیم. هیچ گاه این سوال پیش نمی آید که چه نوع غذاهایی را می توانم با این میز درست بکنم.این سوال غیر منطقی است زیر را دسته بندی این اشیا را می دانیم.

یکی دیگر از مزیت های شی گرایی، این است که ما در هنگام استفاده از شی گرایی، مفهوم چند ریختیPolymorphism را داریم، به این معنی که از یک Interface به اشتراک گذاری شده، می توان پیاده سازی های مختلفی داشت. مثل کلاس گربه و ببر، هر دو این کلاس ها، جز کلاس های گربه سانان هستند ولی برخی از ویژگی ها در اینها تفاوت دارد.با رویکرد شی گرایی بدون درگیر شدن با مفاهیم پیچیده می توان متوجه شد که چه ویژگی هایی را باید از کلاس پدر به ارث برد.

برنامه نویسی مبتنی بر داده، چشم انداز برنامه نویسی را از اشیا به داده ها تغییر می دهد.نوع داده ها، چگونگی قرار گرفتن آنها در حافظه، نحوه خواندن و پردازش آنها در حافظه در برنامه هایی که می نویسیم اهمیت دارد.

در رویکرد برنامه نویسی داده محور، توابع محدود می شوند به بخشی از اطلاعات و قابلیت استفاده مجدد را ندارند.در صورتی که نیاز به ارث بری باشد، باید توابع در کلاس والد نوشته شوند یا اینکه نیاز به بازنویسی تابع در برنامه داریم. چگونگی ارث بری توابع در این رویکرد بسیار مهم است.برای پردازش نیاز به فراخوانی توابع از کلاس های مختلف هستیم که ممکن است موجب ناکارآمدی برنامه ما شوند.

تفاوت OOP و DOP
تفاوت OOP و DOP

رویکرد برنامه نویسی داده محور به خاطر خصوصیاتی که دارد مقداری دشوار است.در این رویکرد به جای اشیا، همه چیز به عنوان داده است.این ویژگی وجه تمایز داده و توابع است.در این رویکرد توابع به بخش بزرگی از اطلاعات اعمال میشوند و توابع دربرگیرنده قواعد شی گرایی نیستند.بهترین رویکرد این است که در مرحله آخر اطلاعات خروجی را توسط توابعی که خودمان ایجاد کردیم در بستر اجرای برنامه پردازش کنیم.

چرا از DOP استفاده می کنیم؟

می توان اینگونه بیان کرد که پردازنده ها ، پردازش اطلاعات به صورت محلی را ساده تر انجام می دهند.این رویکرد سبب می شود که بسیاری از قوانین دست و پا گیر شی گرایی را نداشته باشیم و از مزایای رویکرد داده محور مثل ارسال توابع به سمت اطلاعات استفاده کنیم.به عنوان مثال نوشتن کد تابع ای که به صورت محلی بهینه شده باشد امکان پردازش همروند را فراهم می کند.به صورت خلاصه، همروند یعنی امکان استفاده از چندین هسته پردازنده برای اجرای وظایف به صورت همزمان می باشد، که این امکان در شی گرایی بسیار سخت و دشوار است. زیرا ایجاد چند Thread نخ ریسک دسترسی به منابع پردازنده را در برنامه افزایش می دهد.با این حال زمانی که گروهی از اطلاعات به یک شکل داریم می تواین از این رویکرد استفاده کرده و توابع بهینه ای را بنویسیم که قابلیت انجام همروندی را داشته باشد.

یکی دیگر از مزایای DOP استفاده بهینه از حافظه پنهان است.زیرا توابع بارها و بارها اطلاعات را پردازش می کنند و حافظه پنهان بلوک های اطلاعتی مورد نیاز در در خود نگه داشته تا توسط پردازنده، پردازش شوند.

تهیه کننده: داوود یعقوبی تبار

منبع:

https://medium.com/@jonathanmines/data-oriented-vs-object-oriented-design-50ef35a99056

آدرس کانال تلگرام سایت بیگ دیتا:

t.me/bigdata_channel

آدرس کانال سروش ما:
https://sapp.ir/bigdata_channel

جهت دیدن سرفصل های دوره های آموزشی بر روی اینجا کلیک کنید.

 

بازدیدها: 1099

یک دیدگاه

  1. خیلی ممنونم بابت این مطلب ارزشمندتون..اولین و تنها سایت ایرانی هستید که میبینم در مورد DOP مطلب نوشته..

دیدگاهتان را بنویسید