تو این مطلب قصد دارم تفاوت سه تا از الگوهای خیلی مهم و معروف برنامه نویسی رو براتون توضیح بدم و بگم هر کدومشون به چه صورت هستش.در ابتدا باید بگم اصلا الگوی برنامه نویسی یا Paradigm Programming چی هست و چه تعریفی داره.
ساده ترین تعریف الگوی برنامه نویسی میتواند این باشد که الگوی برنامه نویسی مسیر یا سبکی میباشد که باعث میشود برنامه نویسی بسیار ساده تر انجام شود.
من در اینجا سه الگوی Object-Oriented،Functional و Procedural را بررسی میکنیم،دقت کنید که من به هیچ وجه این سه الگو را با هم مقایسه نمیکنیم بلکه هر سه را تعریف میکنیم.
برنامه نویسی شی گرا یکی از معروف ترین الگوهای برنامه نویسی هست که مطمئنا تمامی برنامه نویسان زبان هایی مثل C# و JAVA و ... به خوبی آن را میشناسند.
اصلی ترین مفهوم در OOP مفهوم اشیا(Object) میباشد.همچنین مفاهیمی مثل متغیرها و کلاس ها در آن وجود دارد.
تعریف دقیق شی گرایی در ویکی پدیا به این صورت آمده است :
برنامه نویسی شی گرا یک شیوه برنامه نویسی است که ساختار اجزای آن،شی ها میباشند.در این شیوه ،برنامه به شی گرایش پیدا میکند.به این معنا که داده ها و توابعی که قرار است بر روی این داده ها عمل کنند تا حد امکان در قالبی به نام شی در کنار یکدیگر قرار گرفته و یک شی را تشکیل میدهند.
بذارید با یک مثال توضیح بدم،یک انسان را در ذهن خودتون تصور کنید.انسان ها میتوانند سفید،سیاه،کوتاه،بلند،لاغر یا چاق باشند و هرکسی میتواند آن را یک شکل تصور کند اما یک تصویر کلی از یک انسان در ذهن همه وجود دارد،این تصویر کلی از انسان که در ذهن همه ی ما ایجاد میشود همان کلاس میباشد.
حال وقتی یک انسان با رنگ پوست سیاه و قد بلند را تصور میکنید شما یک شی از انسانی که قبلا آن را تصور کرده اید دارید به علاوه ی دو ماهیت اضافه تر که شامل رنگ پوست سیاه و قد بلند است.
در OOP چهار مفهوم اصلی وجود دارد که میتوان از آنها به عنوان ویژگی های اصلی شی گرایی یاد کرد :
این مفاهیم را در مطالب جداگانه ای شرح خواهم داد.
برنامه نویسی تابعی یکی از معروفترین الگوهای برنامه نویسی میباشد.این الگو به زبان ساده روشی است برای ساخت نرم افزار با استفاده از توابع خالص(Pure Function) و عدم تغییر وضعیت و داده ها.در برنامه نویسی Javascript این نوع برنامه نویسی به عنوان یکی از اصول اولیه محسوب میشود.
در این الگو خروجی های تابع کاملا مبتنی بر ورودی های تابع میباشد و همواره خروجی تابع یکسان است ،همچنین از مهترین ویژگی های آن حذف تاثیرات جانبی میباشد.به بیان ساده تر کد شما شامل تعداد زیاد تابع میباشد که شما داده را به این تابع ها انتقال میدهید تا نتیجه را بگیرید و همچنین داده ی شما غیرقابل تغییر است و به جای تغییر ساختمان داده مورد نظر،یک ساختمان داده ی جدید میسازد.
کدی که با استفاده از این الگو پیاده سازی میشود بسیار مختصر تر و قابل پیشبینی تر از سایر الگو ها میباشد اما برای تازه واردان درک آن بسیار سخت تر میباشد.
مفاهیمی همچون توابع خالص،ترکیب توابع،حذف تاثیرات جانبی و... اصلیترین نکات این الگو هستند که توضیح آنها مطلب جداگانه ای را میطلبد ،همچنین نحوه ی برنامه نویسی با این الگو را در آینده در یک مطلب کامل تست خواهیم کرد.
برنامه نویسی رویه ای یک الگوی بسیار ساده میباشد،به این صورت که در این نوع برنامه نویسی عملیات ها به ترتیب و یکی پس از دیگری اجرا میشود.در این روش برنامه نویس با دانش خود محلهایی از حافظه را برای ذخیره مقادیر انتخاب میکند و سپس یک سری از رویه ها (به رویه های ماژول،متد،تابع،ساب روتین نیز گفته میشود) اجرا میشوند تا بتوانند مقادیر ذخیره شده پس از انجام عملیات را به عنوان خروجی برمیگرداند.
این سه الگو ،از مهمترین الگوهای برنامه نویسی در حال حاضر هستند که میتوانند کدنویسی را برای شما بسیار راحتتر و قابل درک تر بکنند،البته تعداد زیاد دیگری از این نوع الگو ها در دنیای برنامه نویسی وجود دارد که هر کدام از آنها مزایا و معایب خود را دارند.
آیا تا به حال با این الگو ها کار کرده اید؟