برنامه نویسی شی گرا در مقابل برنامه نویسی رویه ای
برنامه نویسی شی گرا (OOP) و برنامه نویسی رویه ای دو پارادایم برنامه نویسی هستند. پارادایم برنامه نویسی یک سبک اساسی از برنامه نویسی کامپیوتر است و در نحوه نمایش عناصر مختلف برنامه و نحوه تعریف مراحل برای حل مسائل با هم تفاوت دارند. همانطور که از نام پیداست، OOP بر نمایش مشکلات با استفاده از اشیاء دنیای واقعی و رفتار آنها تمرکز دارد، در حالی که برنامهنویسی رویهای با ارائه راهحلهایی برای مشکلات با استفاده از رویهها، که مجموعهای از کد هستند که به ترتیب خاصی اجرا میشوند، سروکار دارد.زبان های برنامه نویسی وجود دارند که از جنبه های کلیدی OOP (به نام زبان های OOP)، رویه ای (به نام زبان های رویه ای) و هر دو پشتیبانی می کنند. اما نکته مهمی که باید به آن توجه داشت این است که OOP و Procedural دو راه برای نمایش مشکلاتی هستند که باید حل شوند و فرقی نمیکند از کدام زبان استفاده شود. به عبارت دیگر، زبانهای OOP را میتوان برای برنامهنویسی رویهای استفاده کرد، در حالی که زبانهای رویهای را میتوان برای OOP استفاده کرد، با کمی تلاش.
برنامهنویسی رویهای روشی برای برنامهنویسی با شناسایی مجموعه مراحل برای حل یک مشکل خاص و ترتیب دقیقی است که باید اجرا شوند تا به نتیجه یا حالت مطلوب برسند. به عنوان مثال، اگر می خواهید مانده پایان ماه یک حساب بانکی را محاسبه کنید، مراحل لازم به شرح زیر است. ابتدا موجودی اولیه حساب را بدست می آورید و سپس تمام مبالغ بدهکاری را که در طول ماه رخ داده است کاهش می دهید. پس از آن، تمام مبالغ اعتباری را که در طول ماه رخ داده است را اضافه می کنید. در پایان فرآیند، مانده پایان ماه حساب را دریافت خواهید کرد.یکی از مفاهیم اصلی برنامه نویسی رویه ای فراخوانی Procedure است. رویهای که بهعنوان زیرروال، روش یا تابع نیز شناخته میشود، حاوی فهرستی منظم از دستورالعملهایی است که باید اجرا شوند. یک رویه را می توان در هر زمان در طول اجرا توسط هر رویه دیگری یا به تنهایی فراخوانی کرد. نمونههایی از زبانهای برنامهنویسی رویهای C و Pascal هستند.
در OOP، تمرکز بر تفکر در مورد مشکلی است که باید حل شود از نظر عناصر دنیای واقعی و نشان دادن مشکل از نظر اشیا و رفتار آنها. شی یک ساختار داده ای است که شباهت زیادی به برخی از شی های دنیای واقعی دارد. اشیا حاوی فیلدهای داده و روش هایی هستند که ویژگی ها و رفتار اشیاء دنیای واقعی را نشان می دهند. چندین مفهوم مهم OOP مانند انتزاع داده، کپسولاسیون، چندشکلی، پیام رسانی، مدولاریت و وراثت وجود دارد. برخی از زبان های محبوب OOP جاوا و سی شارپ هستند. با این حال، می توان از آنها برای اجرای برنامه ریزی رویه ای نیز استفاده کرد.
تفاوت اصلی بین OOP و برنامهنویسی رویهای این است که تمرکز برنامهنویسی رویهای این است که وظیفه برنامهنویسی را به مجموعهای از متغیرها و زیر روالها تقسیم کند، در حالی که تمرکز OOP این است که وظیفه برنامهنویسی را به اشیاء، که داده ها و روش ها را محصور می کنند.قابل توجه ترین تفاوت می تواند این باشد که در حالی که برنامه نویسی رویه ای از رویه ها برای عملکرد مستقیم بر روی ساختارهای داده استفاده می کند، OOP داده ها و روش ها را با هم ترکیب می کند تا یک شی بر روی داده های خود عمل کند. وقتی صحبت از نامگذاری به میان می آید، رویه، ماژول، فراخوانی رویه و متغیر در برنامه نویسی رویه ای اغلب به ترتیب به عنوان متد، شی، پیام و ویژگی در OOP نامیده می شوند.