برنامه نویسی شی گرا چیست؟ کاربرد برنامه نویسی شی گرا؟ تاریخچه برنامه نویسی های شی گرا چیست؟ نمونه هایی از زبان های برنامه نویسی شی گرا چیست؟ در این مطلب از وبلاگ الکامکو می خواهیم به این سوالات پاسخ دهیم. پس تا آخر بخوانید تا با جواب آنها آشنا شوید.
شی گرایی چیست؟
تعریف یک سری ویژگی یا رفتار و نسبت دادن اون ویژگی و رفتار ها به چیز های مختلف را شی گرایی می گویند. شی گرایی فقط منحصر به برنامه نویسی نیست و در همه ابعاد زندگی قابل تفهیم است. مثلا یک یک لپتاپ را در نظر بگیرید. این لپ تاپ دارای ویژگی های خاص خودش مثل رنگ، مدل، مشخصات سخت افزاری، قابل حمل بودن و … منحصر به فردی است. وقتی شما جایی می شنوید لپ تاپ ایسوس ، در یک لحظه تمام ویژگی های یک لپ تاپ را که چه ویژگی یا رفتار هایی دارد به یاد میارید. این یعنی شی گرایی یعنی یک سری ویژگی و رفتار برای لپ تاپ تعریف کردیم و آن را به ایسوس نسبت دادیم!
تقسیم زبان های برنامه نویسی:
- زبان های برنامه نویسی شی گرا: شامل تقریبا تمام زبان های کاربردی امروزی
- زبان های برنامه نویسی غیر شی گرا: شامل تقریبا تمام زبان های قدیمی
مفاهیم برنامه نویسی شی گرا با یک مثال
در شروع یادگیری برنامه نویسی شئگرا باید با اصطلاحات برنامه نویسی شی گرا آشنا شوید و بدانید کلاس و شئ چه هستند و تفاوت آنها در چیست.
در مبحث شی گرایی ما دو تا مفهوم داریم: کلاس (class) و شیء (object) که اینجا با مثال توضیح میدیم:
کلاس (class): مفهوم کلاس در برنامه نویسی شی گرا تعریف ما از یک چیزی مثل همون لپ تاپه ! پس لپ تاپ یک کلاس است. کلاس ها به طور کلی ۲ موضوع رو مشخص می کنند:
- رفتار (Behavior): مثل اجرا کردن برنامه ها، خاموش شدن، روشن شدن و…
- ویژگی یا خصوصات (Atribute): مثلا سرعت بالاتر، رنگ، وزن و…
شیء (object): شیء به چیزی گفته می شود که که ما کلاس را به آن نسبت می دهیم. مثلا در این مثال مشخصات لپ تاپ را به لپ تاپ ایسوس نسبت دادیم. اینجا لپ تاپ ایسوس همان شیء است. تو برنامه نویسی به این عمل (نسبت دادن ایسوس به لپ تاپ) instance سازی گفته می شود و می توانیم بگیم ایسوس یک instance از کلاس لپ تاپ است.
در نتیجه : برنامه نویسی شی گرا چیست؟
برنامه نویسی شی گرا یک شیوه برنامهنویسی است، که ساختار یا بلوک اصلی اجزای آن، شیها هستند. در این شیوه برنامهنویسی، برنامه به شی گرایش پیدا میکند، به این معنا که دادهها و توابعی که بر روی این دادهها عمل میکنند، تا حد امکان در قالبی به نام شیء و در کنار یکدیگر قرار گرفته، جمعبندی شده و یک واحد (یا یک شیء) را تشکیل میدهند و نسبت به محیط بیرونِ خود، کپسوله میشوند. از این طریق، توابع خارج از آن شیء، امکان ایجاد تغییر در دادههای درون شیء را نخواهند داشت.
برنامه نویسی شی گرا به انگلیسی
مخفف object-oriented programming برنامه نویسی شی گرا به انگلیسی (OOP) است.
اهمیت برنامه نویسی شی گرا چیست؟
در برنامه نویسی، شی گرایی یکی از مفاهیم مهم است که هر برنامه نویسی باید بتواند از آن استفاده کند. شاید لزوم این نوع برنامه نویسی در برنامه های کوچیک زیاد به چشم نیاد، ولی در پروژه های کمی بزرگتر، یکی از واجبات است.
همچنین بخوانید: گرفتن پروژه برنامه نویسی اندروید، وب و غیره چگونه است؟
تاریخچه برنامه نویسی شی گرا چیست؟
برنامه نویسی شی گرا با زبان Simula (1967) شروع شد که مخفی کردن اطلاعات را به ALGOL اضافه کرد. یکی دیگر از زبان های تاثیرگذار شی گرا اسمال تاک (۱۹۸۰) بود که در آن یک برنامه مجموعه ای از اشیاء بود که با ارسال پیام به یکدیگر در تعامل بودند.
اصول برنامه نویسی شی گرا چیست؟
برنامه نویسی شی گرا بر اساس اصول زیر است:
کپسوله سازی (Encapsulation): این اصل بیان می کند که تمام اطلاعات مهم در داخل یک شی وجود دارد و فقط اطلاعات انتخابی در معرض دید قرار می گیرند. پیاده سازی و وضعیت هر شی به صورت خصوصی در یک کلاس تعریف شده نگهداری می شود. اشیاء دیگر به این کلاس دسترسی ندارند یا اختیار ایجاد تغییرات را ندارند. آنها فقط می توانند لیستی از توابع یا متدهای عمومی را فراخوانی کنند. این ویژگی پنهان کردن داده ها امنیت برنامه را بیشتر می کند و از خراب شدن ناخواسته داده ها جلوگیری می کند.
انتزاع (Inheritance): اشیاء فقط مکانیسم های داخلی را نشان می دهند که برای استفاده از اشیاء دیگر مرتبط هستند و هر کد پیاده سازی غیر ضروری را پنهان می کنند. کلاس مشتق شده می تواند عملکرد خود را گسترش دهد. این مفهوم می تواند به توسعه دهندگان کمک کند تا تغییرات یا اضافات بیشتری را در طول زمان انجام دهند.
وراثت (Abstraction): کلاس ها می توانند از کدهای کلاس های دیگر استفاده مجدد کنند. میتوان روابط و زیر کلاسها را بین اشیاء اختصاص دهند و توسعهدهندگان را قادر سازند تا از منطق مشترک استفاده مجدد کنند و در عین حال ویژگی سلسله مراتبی منحصر به فرد را حفظ کنند. این خواص برنامه نویسی شی گرا باعث تجزیه و تحلیل داده های دقیق تر می شود، زمان توسعه را کاهش می دهد و سطح بالاتری از دقت را تضمین می کند.
پلی مورفیسم (Polymorphism): اشیا برای به اشتراک گذاشتن رفتارها طراحی شده اند و می توانند بیش از یک شکل به خود بگیرند. این برنامه تعیین می کند که کدام معنا یا کاربرد برای هر اجرای آن شی از یک کلاس والد ضروری است و نیاز به کد تکراری را کاهش می دهد. سپس یک کلاس فرزند ایجاد می شود که عملکرد کلاس والد را گسترش می دهد. چند شکلی به انواع مختلف اشیاء اجازه می دهد تا از یک رابط عبور کنند.
این دوره نیاز به پیش نیاز ندارد. تمامی مفاهیم از صفر تا صد یعنی از سطح مبتدی تا پیشرفته به شما آموزش داده می شود.
مزایا و معایب برنامه نویسی شی گرا چیست؟
هر زبان برنامه نویسی دارای مزایا و معایب خاص خودش است. در این قسمت می خواهیم شما را با مزایا و معایب برنامه نویسی زبان OOP آشنا کنیم:
مزایای برنامه نویسی شی گرا چیست؟
- مدولار بودن (Modularity): کپسوله سازی اشیاء را قادر می سازد تا در خود محفوظ باشند و عیب یابی و توسعه مشارکتی را آسان تر می کند.
- قابلیت استفاده مجدد (Reusability): کد را می توان از طریق وراثت دوباره استفاده کرد، به این معنی که یک تیم مجبور نیست یک کد را چندین بار بنویسد.
- بهره وری (Productivity): برنامه نویسان می توانند با استفاده از کتابخانه های متعدد و کدهای قابل استفاده مجدد سریعتر برنامه های جدید بسازند.
- قابل ارتقا و مقیاس پذیر (Easily upgradable and scalable): برنامه نویسان می توانند عملکردهای سیستم را به طور مستقل پیاده سازی کنند.
- توضیحات رابط (Interface descriptions): توضیحات سیستم های خارجی به دلیل تکنیک های ارسال پیام که برای ارتباط اشیا استفاده می شود، ساده است.
- امنیت (Security): با استفاده از کپسوله سازی و انتزاع، کدهای پیچیده پنهان می شوند، نگهداری نرم افزار آسان تر می شود و پروتکل های اینترنتی محافظت می شوند.
- انعطاف پذیری (Flexibility): چند شکلی یک تابع را قادر می سازد تا با کلاسی که در آن قرار می گیرد سازگار شود. اشیاء مختلف نیز می توانند از یک رابط عبور کنند.
معایب برنامه نویسی شی گرا چیست؟
مدل برنامه نویسی شی گرا به دلایل متعدد مورد انتقاد توسعه دهندگان قرار گرفته است. بزرگترین مشکلات برنامه نویسی شی گرا این است که بیش از حد بر مؤلفه داده توسعه نرم افزار تأکید می کند و به اندازه کافی روی محاسبات یا الگوریتم ها تمرکز نمی کند. بعلاوه، نوشتن کد OOP ممکن است پیچیدهتر باشد و کامپایل آن بیشتر طول بکشد.
همچنین بخوانید: معرفی سایت های فریلسری برنامه نویسی ایرانی و خارجی
نمونه هایی از زبان های برنامه نویسی شی گرا چیست؟
در حالی که Simula به عنوان اولین زبان برنامه نویسی شی گرا شناخته می شود، امروزه بسیاری از زبان های برنامه نویسی دیگر با OOP استفاده می شوند. اما برخی از زبان های برنامه نویسی بهتر از سایرین با OOP در ارتباط هستند. به عنوان مثال، زبانهای برنامهنویسی که زبانهای OOP خالص (pure) در نظر گرفته میشوند، همه چیز را به عنوان یک شی در نظر میگیرند. سایر زبانهای برنامهنویسی عمدتاً برای OOP طراحی شدهاند، اما شامل برخی فرآیندهای رویهای هستند.
به عنوان مثال، زبان های محبوب OOP عبارتند از:
- Ruby
- Scala
- JADE
- Emerald
زبان های برنامه نویسی که عمدتاً برای OOP طراحی شده اند عبارتند از:
- Java
- Python
- C++
سایر زبان های برنامه نویسی که با OOP مرتبط می شوند عبارتند از:
- Visual Basic .NET
- PHP
- JavaScript
روش های جایگزین برای زبان های برنامه نویسی شی گرا چیست؟
روشهای جایگزین برای زبان های برنامه نویسی شی گرا عبارتند از:
برنامه نویسی تابعی (Functional programming): برنامهنویسی تابعی یک پارادایم برنامهنویسی یا سبکی برای ایجاد ساختار و عناصر برنامههای رایانهای است که با محاسبه به صورت یک ارزیابی تابعهای ریاضیاتی برخورد میکند و از وضعیتهای در حال تغییر و دادههای تغییرپذیر اجتناب میکند.
برنامه نویسی ساختاریافته یا مدولار (Structured or modular programming): در برنامه نویسی ساختاری ، کد به توابع یا ماژول ها تقسیم می شود. همچنین به عنوان برنامه نویسی مدولار شناخته می شود. ماژول ها یا توابع مجموعه ای از عبارات است که یک کار فرعی را انجام می دهد. از آنجا که هر کار یک ماژول جداگانه است ، آزمایش و رفع اشکال برای برنامه نویس آسان است. همچنین انجام اصلاحات بدون تغییر کل برنامه بسیار آسان است. هنگام تغییر کد ، برنامه نویس فقط باید روی ماژول خاص تمرکز کند. زبان C و پاسکال نمونه هایی از زبان های برنامه نویسی ساختاری هستند.
برنامه نویسی دستوری (Imperative programming): بر خلاف زبانهای اعلانی است که در آنها تنها نتیجه انجام دستورها بیان میشود. به بیان دیگر در زبانهای دستوری چگونگی اجرای برنامه بیان میشود اما در زبانهای اعلانی چیستی نتیجه بیان میشود. این نوع برنامه نویسی شامل C++ و جاوا میشود.
برنامه نویسی اعلانی (Declarative programming): این روش برنامه نویسی شامل بیانیه هایی در مورد اینکه کار یا نتیجه مطلوب چیست می باشد، اما نحوه دستیابی به آن دستورات بیان نمی شود. برخی از این زبان ها عبارتند از Prolog و Lisp.
برنامه نویسی منطقی (Logical programming): هر برنامه نوشتهشده به یک زبان برنامهنویسی منطقی مجموعهای از جملهها است که حالت منطقی دارند، که آن جملهها بیانگر «واقعیت» و «قاعده» دربارهٔ یک دامنه مسئله هستند. خانوادههای زبان برنامهنویسی منطقی اصلی شامل پرولوگ، برنامهنویسی مجموعه جواب (ASP) و دیتالاگ است.
اکثر زبان های برنامه نویسی پیشرفته توسعه دهندگان را قادر می سازند تا مدل ها را ترکیب کنند، زیرا می توان از آنها برای روش های برنامه نویسی مختلف استفاده کرد. به عنوان مثال، JavaScript می تواند برای برنامه نویسی OOP و تابعی استفاده شود.
همچنین بخوانید: کراس پلتفرم چیست؟
نتیجه گیری از برنامه نویسی شی گرایی چیست؟
در این مقاله در مورد اینکه منظور از برنامه نویسی شی گرا چیست و چه کاربرد و مزایا و معایبی دارد صحبت کردیم. برنامهنویسی شئگرا (Object Oriented Programming) که به اختصار OOP نیز نامیده میشود، در حقیقت نوعی منطق یا الگوست که برگرفته از زندگی روزمرهی ما بوده و حدودا در دههی ۱۹۶۰ میلادی مطرح شد و هر برنامه نویسی باید با این مفاهیم اشنا باشد تا بتواند با پروژه های بزرگتر راحتتر کار کند.
کاربردهای زبان برنامه نویسی شی گرا و میخوام