توسعه با طعم شی‌ گرایی (0) - شی گرایی یا رویه ای (1)

سلام دوستان. ببخشید دیر شد، خودم سعی دارم یک روز درمیان مقالات را آماده کنم، اما نمیدونم چرا انقدر زمان سریع میگذره و زود دیر میشه!.... خب بریم سراغ ادامه مقدمه و شروع بحث.

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

متون زیر ترجمه ویرایش شده از مقاله Differences between Procedural and Object Oriented Programming است.

البته برنامه نویسی رویه ای تقریبا در پروژه ای حرفه ای و لارج اسکیل انجام نمیشه اما مرور و مقایسه اش خارج از لطف نیست.

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

برنامه نویسی رویه ای را می توان به عنوان یک مدل برنامه نویسی تعریف کرد که برگرفته از مفهوم فراخوانی رویه ای است که در آن عملیات یکی پس از دیگری و به ترتیب اجرا می شوند .رویه هایی که به عنوان روال ، زیرروال یا عملکرد ( routines- subroutines – functions) نیز شناخته می شوند، شامل یک سری مراحل محاسباتی هستند. در حین اجرای یک برنامه ، هر رویه خاص برحسب نیاز ممکن است در هر نقطه فراخوانی شود، این فراخوانی میتواند از سمت خودش باشد یا رویه های دیگر. از زبان های مطرح رویه ای میتوان به سی، فورترن، کوبول، بیسیک و پاسگال اشاره کرد.

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


برنامه نویسی شی گرا  Object Oriented

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

برنامه نویسی شی گرا  Object Oriented
برنامه نویسی شی گرا Object Oriented


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

آبجکت-اورینتد یا همون شی گرا
  • در برنامه نویسی شی گرا ، برنامه به قسمتهای کوچکی تقسیم می شود که اشیا نامیده می شوند .
  • برنامه نویسی شی گرا از رویکرد پایین به بالا پیروی می کند . bottom up approach
  • برنامه نویسی شی گرا دارای مشخص کننده های دسترسی مانند خصوصی ، عمومی ، محافظت شده و غیره است.(private, public, protected)
  • افزودن داده و عملکرد جدید آسان است.
  • برنامه نویسی شی گرا مخفی کردن داده ها را فراهم می کند بنابراین امنیت بیشتری دارد .
  • در برنامه نویسی شی گرا Overloading امکان پذیر است.
  • در برنامه نویسی شی گرا ، داده از اهمیت بیشتری برخوردار است..
  • برنامه نویسی شی گرا بر اساس دنیای واقعی است .


پروسیجر اورینتد یا رویه ای
  • در برنامه نویسی رویه ای ، برنامه به قسمتهای کوچکی تقسیم می شود که توابع نامیده می شوند
  • برنامه نویسی رویه ای از رویکرد بالا به پایین پیروی می کند .(top down approach)
  • در برنامه نویسی رویه ای مشخص کننده دسترسی وجود ندارد.
  • افزودن داده و عملکرد جدید آسان نیست
  • برنامه نویسی رویه ای روش مناسبی برای پنهان کردن داده ها ندارد بنابراین از امنیت کمتری برخوردار است
  • در برنامه نویسی رویه ای ،Overloading امکان پذیر نیست..
  • در برنامه نویسی رویه ای ، عملکرد مهمتر از داده است..
  • برنامه نویسی رویه ای مبتنی بر دنیای غیر واقعی است

در ادامه به مثال هایی در این رابطه و مقایسه شی گرایی با برنامه نویسی فانکشنال خواهیم پرداخت.