مبتدیان خیلی زود نحوه استفاده از کلاسها و تکنیک های برنامه نویسی شی گرا را می آموزند. اما دلیل آن هرگز به آنها گفته نمی شود. اما چرا؟ کلاس در برنامه نویسی چیست؟
پاسخ ساده: برنامه نویسان هر زمان که به بیش از یک مورد از چیزی نیاز داشته باشند از کلاس استفاده می کنند.
اجازه دهید بازی محبوب Candy Crush را مثال بزنیم.
کلاس ها مانند کارخانه های تولید آب نبات هستند. یا کارخانه های اتومبیل سازی. شما یک بار یک چیز را تعریف کنید و اجازه دهید کد تعدادی که می خواهید را ایجاد کند!
برنامه نویسی شی گرا (OOP) چیست؟
OOP یا Object-oriented programming = استفاده از کلاسها در برنامه نویسی
اجازه دهید قبل از هرچیز درباره موارد زیر صحبت کنیم.
۱- شی (object) چیست؟
در کد، ما گروهی از متغیرها و روش های مرتبط (توابع) را در یک واحد ترکیب می کنیم و آن واحد را یک شی می نامیم.
۲- کلاس چیست؟
کلاسها نقشه های اولیه ای هستند که رفتار و اطلاعات اشیا را تعریف می کنند. آنها به ما اجازه می دهند نمونه های جدید را تولید و نمونه سازی کنیم.
۳- روش (Method) چیست؟
روش نمونه رفتار اشیا است.
ما می دانیم که کلاس ها به عنوان کارخانه ای برای اشیا ما عمل می کنند و امکان نمونه سازی موارد جدید را به ما می دهند. اگر بخواهیم از این اشیا بخواهیم کاری انجام دهند، چه می شود؟
در اینجا ما برای نمایش بهتر این مفهوم انتزاعی از یک مثال استفاده خواهیم کرد:
فرض کنید در ساخت برنامه ای برای سرپرستی کوالاها به دولت استرالیا کمک می کنیم. تک تک کوالاها دارای ویژگی هایی مانند نام، سن، وزن و غیره خواهند بود. تصور کنید که ما ۵۰ کوالا داریم و هر کدام را با ۵ ویژگی توصیف می کنیم. بدون OOP، ۲۵۰= ۵۰*۵ متغیر خواهیم داشت. با OOP، می توانیم آن را به راحتی و با کد کمتر توصیف کنیم – یک کلاس کوالا ۵۰ نمونه ای. در واقع ما نمی خواهیم یک کد را مرتباً تکرار کنیم.
class Koala attr_accessor :name, :weight, :age @@all =[] def initialize(name) @name = name @weight = weight @age = age Koala.all << self end def self.all @@all end def donation puts ” Thank you for helping me! “ end end |
بنابراین با این کار، می توانیم به تعداد دلخواه کوالا داشته باشیم.
اصول طراحی OO:
۱- جداسازی مسئولیت ها از هم
هر بار یک کار انجام دهید
۲- انتزاع و عدم تکرار
به جای کپی / پیست متوالی، از کد خود استفاده مجدد کنید
۳- محدودیت خط در روش ها و کلاس ها
متدها نباید از ۵ خط کد و کلاس ها از ۱۰۰ خط بیشتر باشند
مزایای OOP:
۱- محصور سازی (Encapsulation)
۲- انتزاع (Abstraction)
۳- وراثت (Inheritance)
۴- چند ریختی (Polymorphism)
منابع زیادی برای توضیح چهار مفهوم اصلی OOP وجود دارند، این بهترین ویدیویی است که من در یوتیوب پیدا کردم و تماشای آن می تواند اطلاعات بیشتری در مورد OOP در اختیار شما قرار دهد: