معروفترین الگوهای برنامه نویسی

paradigm programming
paradigm programming

تو این مطلب قصد دارم تفاوت سه تا از الگوهای خیلی مهم و معروف برنامه نویسی رو براتون توضیح بدم و بگم هر کدومشون به چه صورت هستش.در ابتدا باید بگم اصلا الگوی برنامه نویسی یا Paradigm Programming چی هست و چه تعریفی داره.

الگوی برنامه نویسی :

ساده ترین تعریف الگوی برنامه نویسی میتواند این باشد که الگوی برنامه نویسی مسیر یا سبکی میباشد که باعث میشود برنامه نویسی بسیار ساده تر انجام شود.

من در اینجا سه الگوی Object-Oriented،Functional و Procedural را بررسی میکنیم،دقت کنید که من به هیچ وجه این سه الگو را با هم مقایسه نمیکنیم بلکه هر سه را تعریف میکنیم.

برنامه نویسی شی گرایی-(Object-Oriented Programming(OOP

Object-Oriented Programming
Object-Oriented Programming

برنامه نویسی شی گرا یکی از معروف ترین الگوهای برنامه نویسی هست که مطمئنا تمامی برنامه نویسان زبان هایی مثل C# و JAVA و ... به خوبی آن را میشناسند.

اصلی ترین مفهوم در OOP مفهوم اشیا(Object) میباشد.همچنین مفاهیمی مثل متغیرها و کلاس ها در آن وجود دارد.

تعریف دقیق شی گرایی در ویکی پدیا به این صورت آمده است :

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

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

حال وقتی یک انسان با رنگ پوست سیاه و قد بلند را تصور میکنید شما یک شی از انسانی که قبلا آن را تصور کرده اید دارید به علاوه ی دو ماهیت اضافه تر که شامل رنگ پوست سیاه و قد بلند است.

در OOP چهار مفهوم اصلی وجود دارد که میتوان از آنها به عنوان ویژگی های اصلی شی گرایی یاد کرد :

  • ارث بری(Inheritance)
  • کپسوله سازی(Encapsulation)
  • چند ریختی(Polymorphism)
  • انتزاع داده(Data abstraction)

این مفاهیم را در مطالب جداگانه ای شرح خواهم داد.

برنامه نویسی تابعی-(Functional Programming(FPf

Functional Programming
Functional Programming

برنامه نویسی تابعی یکی از معروفترین الگوهای برنامه نویسی میباشد.این الگو به زبان ساده روشی است برای ساخت نرم افزار با استفاده از توابع خالص(Pure Function) و عدم تغییر وضعیت و داده ها.در برنامه نویسی Javascript این نوع برنامه نویسی به عنوان یکی از اصول اولیه محسوب میشود.

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

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

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

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

Procedural Programming
Procedural Programming

برنامه نویسی رویه ای یک الگوی بسیار ساده میباشد،به این صورت که در این نوع برنامه نویسی عملیات ها به ترتیب و یکی پس از دیگری اجرا میشود.در این روش برنامه نویس با دانش خود محلهایی از حافظه را برای ذخیره مقادیر انتخاب میکند و سپس یک سری از رویه ها (به رویه های ماژول،متد،تابع،ساب روتین نیز گفته میشود) اجرا میشوند تا بتوانند مقادیر ذخیره شده پس از انجام عملیات را به عنوان خروجی برمیگرداند.

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

آیا تا به حال با این الگو ها کار کرده اید؟