پرووید
منو

آموزش پروژه محور برنامه نویسی شی گرا در سی شارپ

زبان: فارسی (دوبله شده)مترجم: پروویددوبلر: پروویدسطح: متوسطمدت زمان: 03:26:44تعداد ویدئوها: 82فایل های پروژه: ناموجود
قیمت:۳٬۴۹۹٬۰۰۰ تومان
این آموزش بخشی از پکیج کامل آموزش شی گرایی (OOP) است که می توانید از تمامی آموزش های آن دیدن کنید.

آموزش پروژه محور برنامه نویسی شی گرا در سی شارپ یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته آموزشی اصول برنامه نویسی شی گرا در سی شارپ است که با نام اصلی #Object -Oriented Programming Fundamentals in C از شرکت Pluralsight منتشر شده است.

برنامه نویسی شی گرا چیست؟

برنامه نویسی شی گرا یا همان Object-Oriented Programming یا بطور اختصارOOP یعنی همه چیز در مورد ایجاد object ها. یک  شی یا همان object  گروهی از متغیرها و توابع مرتبط با یکدیگر است. این متغیرها اغلب به عنوان ویژگی های شی و توابع به عنوان behavior آبجکت ها نامیده می شوند. این شی ها ساختار بهتر و واضحی را برای برنامه فراهم می کنند. برنامه نویسی شی گرا به این دلیل معروف است که موجودیت های دنیای واقعی مانند اشیاء و ارث بری و... را در برنامه نویسی پیاده سازی می کند. این نوع برنامه نویسی تجسم را آسان تر می کند زیرا به سناریوهای دنیای واقعی نزدیک است.

به عنوان مثال، یک ماشین می تواند یک شی  باشد. اگر ماشین را به عنوان یک object در نظر بگیریم، ویژگی‌های آن عبارتند از: رنگ، مدل، قیمت و غیره. و behavior  و عملکرد آن شتاب، کاهش سرعت، تعویض دنده خواهد بود.

ویژگی های برنامه نویسی شی گرا

برنامه نویسی شی گرا بر اساس مفهوم اشیا یا همان object ها است. در برنامه نویسی شی گرا، ساختارهای داده یا اشیاء تعریف می شوند که هر کدام دارای ویژگی ها یا ویژگی های خاص خود هستند. هر شیء همچنین می تواند شامل رویه ها یا روش های خاص خود باشد. نرم افزاری که با استفاده از اشیایی که با یکدیگر تعامل دارند طراحی می شود. مزایای مختلفی را ارائه می دهد، مانند:

  • اجرای سریعتر و آسانتر
  • ارائه یک ساختار واضح برای یک برنامه
  • ساده تر کردن کد برای اصلاح، اشکال زدایی و نگهداری
  • استفاده مجدد از کد را آسان تر می کند

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

طراحی کلاس ها بر اساس نیازمندی های نرم افزار در C#

در یک پروژه نرم افزاری، پیش از نوشتن کلاس ها باید نیازمندی های برنامه را بررسی کنید و مشخص کنید چه اطلاعاتی باید نگهداری شوند و چه رفتارهایی موردنیاز هستند. برای مثال، در یک سیستم مدیریت سفارش ممکن است به موجودیت هایی مانند سفارش، مشتری و محصول نیاز داشته باشید. هر یک از این موجودیت ها می توانند در قالب یک کلاس در C# تعریف شوند تا اطلاعات و رفتارهای مرتبط با آن ها در یک ساختار مشخص قرار بگیرند.

بررسی کلاس های Static - نمونه ای از بخش ساختن یک کامپوننت Reusable در آموزش پروژه محور برنامه نویسی شی گرا در سی شارپ
نمونه ای از بخش «ساختن یک کامپوننت Reusable» در آموزش پروژه محور برنامه نویسی شی گرا در سی شارپ

طراحی کلاس ها بر اساس نیازمندی ها کمک می کند ساختار کد با مفاهیم واقعی مسئله هماهنگ باشد. اگر مسئولیت های هر کلاس به درستی مشخص شوند، توسعه قابلیت های جدید و اصلاح بخش های موجود آسان تر خواهد بود. در مقابل، کلاس هایی که وظایف نامرتبط زیادی بر عهده دارند، معمولاً نگهداری دشوارتری پیدا می کنند. یادگیری این روش طراحی برای توسعه دهندگانی مفید است که می خواهند از نوشتن کدهای پراکنده عبور کنند و ساختار منظم تری برای برنامه های C# ایجاد کنند.

مفهوم Entity Class در سی شارپ و کاربرد آن

`Entity Class` کلاسی است که برای نمایش یک موجودیت در دامنه مسئله به کار می رود. برای مثال، در یک سیستم فروشگاهی می توانید کلاس `Product` را برای نگهداری اطلاعات محصول و کلاس `Customer` را برای نمایش مشتری تعریف کنید. این کلاس ها معمولاً ویژگی هایی دارند که وضعیت موجودیت را نشان می دهند و در صورت نیاز می توانند رفتارهای مرتبط با آن را نیز در خود جای دهند. انتخاب نام های معنادار برای کلاس ها و ویژگی ها، درک ساختار برنامه را ساده تر می کند.

ساختن یک کلاس با توابع سازنده - نمونه ای از بخش ساختن Entity Class ها – اضافه کردن متدها در آموزش پروژه محور برنامه نویسی شی گرا در سی شارپ
نمونه ای از بخش «ساختن Entity Class ها – اضافه کردن متدها» در آموزش پروژه محور برنامه نویسی شی گرا در سی شارپ

هنگام طراحی Entity Class باید به این موضوع توجه کنید که هر کلاس چه اطلاعاتی را مالک است و چه تغییراتی می تواند روی آن ها انجام دهد. برای مثال، می توانید اطلاعات مربوط به سفارش را در کلاس `Order` نگهداری کنید و رفتارهای مرتبط با وضعیت سفارش را در همان کلاس تعریف کنید. این کار به جلوگیری از پراکندگی منطق برنامه کمک می کند. شناخت نحوه تعریف موجودیت ها و افزودن متدهای مناسب، یکی از مهارت های پایه ای در طراحی نرم افزار با C# و اصول شی گرایی است.

اصل تفکیک مسئولیت ها و طراحی کلاس های قابل نگهداری

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

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

استفاده مجدد از کد با Inheritance و Interface در C#

در طراحی شی گرا، گاهی چند کلاس ویژگی ها یا رفتارهای مشترکی دارند. در چنین شرایطی، `Inheritance` یا وراثت می تواند امکان تعریف یک کلاس پایه و استفاده از قابلیت های آن در کلاس های مشتق شده را فراهم کند. برای مثال، اگر چند نوع حساب بانکی ویژگی های مشترکی داشته باشند، می توان بخش مشترک را در یک کلاس پایه قرار داد. با این حال، وراثت باید زمانی استفاده شود که رابطه میان کلاس ها از نظر مفهومی مناسب باشد، نه صرفاً برای کاهش تعداد خطوط کد.

`Interface` راه دیگری برای تعریف قرارداد میان بخش های مختلف برنامه است. یک اینترفیس مشخص می کند یک نوع داده چه اعضایی را باید ارائه کند، بدون اینکه الزاماً نحوه پیاده سازی آن ها را تعیین کند. این قابلیت باعث می شود کلاس های متفاوت بتوانند از یک قرارداد مشترک پیروی کنند و در بخش های دیگر برنامه به شکل یکسان مورد استفاده قرار بگیرند. درک تفاوت وراثت و اینترفیس به شما کمک می کند وابستگی های مناسب تری طراحی کنید و کامپوننت هایی بسازید که قابلیت استفاده مجدد بیشتری داشته باشند.

سرفصل مطالب آموزش ویدئویی آموزش پروژه محور برنامه نویسی شی گرا در سی شارپ

فصل اول: مقدمه این دوره آموزشی
  • مقدمه
فصل دوم: مقدمه و معرفی دوره
  • مقدمه
  • تفاوت آبجکت ها و کلاس ها
  • بررسی واژگان
  • برنامه نویسی شی گرا چیست؟
  • بکارگیری هرآنچه از این دوره یاد می گیرید
  • طرح کلی دوره
فصل سوم: مشخص کردن کلاس ها از طریق نیازمندی ها
  • مقدمه
  • تجزیه و تحلیل کردن Business Problem
  • شروع کردن با اسم ها
  • تعریف کردن اعضای (Member) مناسب
  • در نظر گرفتن زمان
  • بررسی Abstraction
  • بررسی Encapsulation
  • جمع بندی
فصل چهارم: ساختن Entity Class ها
  • مقدمه
  • لایه بندی کردن اپلیکیشن
  • ساختن لایه Business Logic
  • ساختن یک کلاس با Property ها
  • استفاده از Snippet ها
  • تست کردن کلاس
  • تست کردن کلاس با مقادیر معتبر
  • تست کردن کلاس با مقادیر نامعتبر
  • کار با Object ها
  • Object ها در نقش Reference Type عمل می کنند
  • بررسیStatic Modifier
  • جمع بندی
فصل پنجم: ساختن Entity Class  ها – اضافه کردن متدها
  • مقدمه
  • ساختن کلاس با Method ها
  • تست کردن Method ها
  • مقررات
  • ساختن یک کلاس با توابع سازنده
  • ساختن کلاس های باقی مانده
  • جمع بندی
فصل ششم: بررسی تفکیک مسئولیت ها
  • مقدمه
  • بررسی اصل Separation of Concerns
  • بازبینی نمودار کلاس
  • ایجاد کردن Address Class
  • ایجاد کردن Repository Class
  • تست کردن یک Repository Class
  • ساختن Repository های دیگر
  • جمع بندی
فصل هفتم: ایجاد کردن رابطه ها
  • مقدمه
  • تعریف رابطه ها
  • انواع رابطه ها
  • بررسی رابطه Collaboration
  • بررسی رابطه Composition
  • رابطه Composition و Reference ها
  • مقدار دهی کردن Referenced Object ها
  • تست کردن یک رابطه Composition
  • رابطه Composition با استفاده از Id
  • وراثت
  • جمع بندی
فصل هشتم: بهره برداری کردن از استفاده مجدد از کد با وراثت
  • مقدمه
  • اسرار استفاده مجدد کد
  • بررسی کلاس Object در دات نت
  • Override کردن عملکرد های یک Base Class
  • بررسی Polymorphism
  • ساختن یک Base Class
  • آموزش عملی: ساختن یک Base Class
  • آماده کردن اعضای Base Class برای Override کردن
  • جمع بندی
فصل نهم: ساختن یک کامپوننت Reusable
  • مقدمه
  • بررسی سناریو
  • ساختن کامپوننت Reusable
  • تست کردن کامپوننت Reusable
  • استفاده از کامپوننت Reusable
  • بررسی کلاس های Static
  • بررسی Extension Method ها
  • مقایسه Static Method با Extension Method
  • جمع بندی
فصل دهم: درک Interface  ها
  • مقدمه
  • بررسی کلاس Interface
  • بررسی دقیق تر مفهوم Interface ها
  • راه اندازی دمو
  • تعریف یک Interface
  • پیاده سازی یک Interface
  • پیاده سازی Polymorphism مبتنی بر Interface ها
  • جمع بندی
فصل یازدهم: نکات پایانی و مراحل بعدی
  • مقدمه
  • جمع بندی
  • مراحل بعدی
دیدگاه کاربران

دیدگاه ها

برای ثبت دیدگاه ابتدا وارد حساب کاربری شوید.
هنوز دیدگاهی برای این محصول تایید نشده است.