کلاسها به عنوان یکی از اصول اساسی برنامهنویسی شیگرا، اجازه میدهند تا دادهها و عملیات مرتبط با آنها را به صورت یک واحد منظم و مدیریتپذیر گروهبندی کنیم. هر کلاس شامل ویژگیها (فیلدها) و رفتارها (متدها) مرتبط با یک موجودیت است. شیگرایی به ما کمک میکند تا این کلاسها را به صورت اجزای مستقل و مدیریتپذیری طراحی کنیم و ارتباطات بین آنها را مشخص کنیم.
سازماندهی بهتر کد: با استفاده از کلاسها و شیگرایی، کدها به صورت منظمتر و سازمانیافتهتر قرار میگیرند که این امر باعث افزایش خوانایی و قابلیت تعمیر کد میشود.
کاهش تکرار: از طریق تعریف کلاسها و استفاده مجدد از آنها، امکان کاهش تکرار در کدها و افزایش بهرهوری محسوس میشود.
انتزاع و تفکر مفهومی: شیگرایی به ما امکان میدهد تا به مفاهیم و اجزای واقعی دنیای واقعی نزدیکتر بشیم و بهتر از آنها تفکر کنیم.
پوششپذیری و توسعهپذیری: با استفاده از اصول شیگرایی، کدها به صورتی طراحی میشوند که به راحتی قابلیت توسعه و تغییر را داشته باشند.
اصطلاح "ارث بری" یا Inheritance یکی از مفاهیم اساسی و مهم در برنامهنویسی شیگرا است که به برنامهنویسان این امکان را میدهد که از کدهای موجود در یک کلاس (یا گروهی از کلاسها) به عنوان پایه برای تعریف کلاسهای جدید استفاده کنند. ارث بری به برنامهنویسان کمک میکند تا کدهای تکراری را کاهش دهند، کد را باز استفاده کنند و ساختار برنامه را بهبود بخشند.
مفهوم ارث بری: در برنامهنویسی شیگرا، ارث بری به عملیاتی اشاره دارد که یک کلاس از ویژگیها و رفتارهای موجود در یک کلاس دیگر به نام "کلاس پایه" یا "کلاس والد" به ارث میبرد. کلاس جدید که ویژگیها و رفتارهای کلاس پایه را به ارث میبرد، به "زیرکلاس" یا "کلاس فرزند" معروف است.
مزایا و کاربردهای ارث بری:
در برنامهنویسی شیگرا، کپسولهسازی یکی از مفاهیم اساسی است که به برنامهنویسان امکان میدهد که دادهها و عملیات مربوط به یک شیء را در یک واحد منطقی ترکیب و مخفی کنند و از دسترسی مستقیم به آنها جلوگیری کنند.
مفهوم کپسولهسازی: کپسولهسازی به معنی پنهانسازی جزئیات داخلی یک شیء و ارائه واسط یکنواخت برای دسترسی به آن میباشد. به این ترتیب، برنامهنویسان میتوانند دادهها و عملیات مربوط به یک شیء را از دید کاربران و سایر قسمتهای برنامه مخفی کنند.
مزایا و کاربردهای کپسولهسازی:
پلیمورفیسم یکی از مفاهیم کلیدی و مهم در برنامهنویسی شیگرا است که برای افزایش انعطافپذیری و قابلیت استفاده مجدد کد استفاده میشود. این مفهوم، برنامهنویسان را قادر میسازد تا رفتار یک شیء را متناسب با نوع آن شیء تغییر دهند.
مفهوم پلیمورفیسم: پلیمورفیسم اصطلاحی است که از دو کلمه یونانی "پلی" به معنای "بسیار" و "مورف" به معنای "شکل" تشکیل شده است و به معنای داشتن چندین شکل و یا قابلیت اتخاذ شکلهای مختلف است. در برنامهنویسی شیگرا، پلیمورفیسم به معنای این است که یک شیء میتواند رفتارهای مختلفی را از خود نشان دهد. این امر به برنامهنویس امکان میدهد که یک رفتار یا عملکرد را به صورت متفاوت بر اساس نوع متفاوت شیء اعمال کند.
انواع پلیمورفیسم:
پلیمورفیسم زمان اجرا (Runtime Polymorphism): در این نوع پلیمورفیسم، تصمیمات مربوط به اجرا زمانی که برنامه اجرا میشود اتخاذ میشود. معمولاً با استفاده از ارثبری و توابع مجازی (virtual functions) در زبانهایی مانند C++ و جاوا ایجاد میشود.
پلیمورفیسم زمان کامپایل (Compile-time Polymorphism): در این نوع پلیمورفیسم، تصمیمات مربوط به کد کامپایل میشود. این نوع پلیمورفیسم معمولاً با استفاده از روشهایی مانند (function overloading) در زبانهایی مانند C++ و پایتون ایجاد میشود.
مزایا و کاربردهای پلیمورفیسم:
در برنامهنویسی شیگرا، Abstract یکی از مفاهیم اساسی است که برای ایجاد انعطافپذیری بیشتر در طراحی و پیادهسازی کلاسها و روابط استفاده میشود. با استفاده از Abstract، میتوانیم کلاسها و روابطی را تعریف کنیم که شامل اعضا (متدها و ویژگیها) هستند که باید توسط زیرکلاسها پیادهسازی شوند.
مفهوم Abstract:در برنامهنویسی شیگرا، Abstract به معنای یک کلاس یا رابط است که شامل حداقل یک متد (تابع) یا ویژگی (فیلد) Abstract است، به این معنی که این متدها یا ویژگیها باید در زیرکلاسها پیادهسازی شوند. کلاس یا رابط Abstract نمیتواند نمونهسازی شود ولی میتواند به عنوان یک الگو برای کلاسهای دیگر عمل کند.
مزایا و کاربردهای Abstract:
رعایت اصول SOLID: اصول Single Responsibility، Open/Closed، Liskov Substitution، Interface Segregation و Dependency Inversion باید در طراحی کلاسها و روابط بین آنها رعایت شود.
نامگذاری مناسب: نامگذاری کلاسها و متدها باید واضح و مفهومی باشد و توصیه میشود از استانداردهای نامگذاری پذیرفته شده در زبان برنامهنویسی مورد استفاده، پیروی شود.
مدیریت ارتباطات: ارتباطات بین کلاسها باید با دقت مدیریت شوند تا تغییرات در یک کلاس تاثیرات غیرمنتظرهای روی سایر کلاسها نداشته باشد.
نوشته شده توسط :
علیرضا مقدم