Senior .NET Developer
چهار رکن اصلی برنامه نویسی شی گرا (OOP)
چهار رکن اصلی برنامه نویسی شی گرا عبارتند از:
Abstraction
Encapsulation
Inheritance
Polymorphism
سعی کنید هر یک از آنها را با ساده ترین روش درک کنید!
- Abstraction
انتزاع داده یا پنهان کردن اطلاعات، Abstraction نامیده می شود. به عبارت دیگر فرآیندی برای انتزاع یا پنهان سازی عملکردها می باشد و فقط امکان استفاده از آن ها را برای کاربران یا برنامه نویسان فراهم می کند.
مفهوم abstraction در مورد یک موضوع کلی صحبت می کند. بدون اینکه به جزئیات آن اشاره کند. زمانی که ما انتزاعی فکر می کنیم، بر روی اشتراک ها تاکید می کنیم و جزئیات را نادیده می گیریم.
بنابراین یک abstraction مناسب در طراحی، نیازمند این است که ما تا حد زیادی مساله را شناخته باشیم و commonality یا شباهت ها و variability یا تفاوت ها را شناسایی کرده باشیم.
2. Encapsulation
این عمل برای محافظت از یکپارچگی داده ها انجام می شود.
به معنای محصور کردن یا قرار دادن همه چیز در یک چیز و فراهم کردن آن برای استفاده client می باشد.
فرض کنید شما می خواهید یک تابع برای ایجاد کاربران بنویسید و آن را در اختیار برنامه نویسان قرار دهید. متدهایی که داریم شامل ValidateUser ،AddUser و Save می باشند.
متد AddUser می تواند از بیرون از کلاس صدا زده شود زیرا Public است. متد ValidateUser و Save در AddUser صدا زده می شود بنابراین Private هستند. کاربران فقط AddUser را صدا می زنند و پارامترها را ارسال می کنند و نمی دانند درون متد چه اتفاقی می افتد. در اینجا ما اعتبار سنجی و اضافه کردن دیتا به پایگاه داده را از سایر کاربران مخفی می کنیم که انتزاع می باشد. و هر سه متد را برای استفاده کاربران در یک متد قرار دادیم که به آن Encapsulation می گویند.
مخفی کردن اطلاعات به شما کمک می کند تا اجزای داخلی کلاس را از چشم مشتریان آن حذف کنید، بنابراین خطر کمتری برای خراب کردن آن وجود دارد.
3. Inheritance
وراثت، اشیاء جدید را قادر می سازد تا از ویژگیهای اشیاء موجود استفاده کنند. برای ایجاد آن به یک ساختار سلسله مراتبی نیاز داریم که به وسیله OOP و با استفاده از Inheritance فراهم می شود. کلاس فرزند خاصیت ها و متدهایی که در کلاس پدر public هستند را به ارث می برد. از مزایای آن قابلیت استفاده مجدد و توسعه پذیری کد ها را می توانیم نام ببریم.
4. Polymorphism
به معنای چند ریختی است و به دو صورت قابل پیاده سازی است.
- Static (Compile Time Polymorphism)
به معنی Overloading می باشد. می توانیم چندین متد با یک نام ایجاد کنیم اگرچه پارامترها متفاوت هستند.
- Dynamic (Runtime Polymorphism)
از این نوع برای مفاهیم بازنویسی (Overridden) استفاده می شود. با استفاده از کلمات کلیدی Virtual و Override پیاده سازی می شود.
مطلبی دیگر از این انتشارات
تابع IIF در Sql
مطلبی دیگر از این انتشارات
آموزش اتصال سورس اندروید استودیو به گیت لب و گیت هاب به دو روش
مطلبی دیگر از این انتشارات
الگوی CQRS چیست