فصل 13 از 40 درس 1 از 1

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

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

بخشی از آموزش جامع C# و .NET 10

محتوای درس مبانی برنامه‌نویسی شی‌گرا

برنامه‌نویسی شی‌گرا رفتار و داده مرتبط را در Typeهای مشخص سازمان‌دهی می‌کند. Class، Object، Field، Property و Method اجزای اصلی این مدل هستند.

۱. Class و Object

Class الگوی ساخت نمونه‌هاست و Object نمونه‌ای از آن Class در حافظه است.

مثال

class Product { public string Name {get;set;}=""; }
         var p=new Product{Name="Mouse"};
         Console.WriteLine(p.Name);

در این مثال، مفهوم «Class و Object» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۲. Field

Field وضعیت داخلی یک Object را نگه می‌دارد و معمولاً برای حفظ Encapsulation به‌صورت private تعریف می‌شود.

مثال

class Counter { private int _count; public void Inc()=>_count++; }

در این مثال، مفهوم «Field» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۳. Property

Property رابط کنترل‌شده‌ای برای خواندن یا تغییر وضعیت ارائه می‌کند و نسبت به Field عمومی انعطاف بیشتری دارد.

مثال

class Product { public decimal Price {get; private set;} public void SetPrice(decimal p)=>Price=p; }

در این مثال، مفهوم «Property» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۴. Method

Method رفتار Type را بیان می‌کند و بهتر است عملیات مرتبط با داده همان Type را در خود نگه دارد.

مثال

class Calculator { public int Add(int a,int b)=>a+b; }
         Console.WriteLine(new Calculator().Add(2,3));

در این مثال، مفهوم «Method» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۵. State و Behavior

مدل خوب شی‌گرا میان داده و رفتاری که مالک آن داده است ارتباط منطقی برقرار می‌کند.

مثال

class Wallet { public decimal Balance{get;private set;} public void Deposit(decimal x)=>Balance+=x; }

در این مثال، مفهوم «State و Behavior» در یک قطعه کد مستقل نمایش داده شده است. مقدارها و نام‌ها عمداً ساده انتخاب شده‌اند تا رفتار اصلی قابل مشاهده باشد؛ در پروژه واقعی همین الگو با مدل دامنه، اعتبارسنجی و مدیریت خطای متناسب ترکیب می‌شود.

۶. مثال‌های عملی

public class Product
         {
             public int Id { get; set; }
             public string Name { get; set; } = string.Empty;
             public decimal Price { get; set; }
         
             public decimal CalculateTotal(int quantity)
             {
                 return Price * quantity;
             }
         }

این نمونه عملی چند مفهوم فصل را در کنار هم قرار می‌دهد و برای مشاهده رفتار واقعی کد قابل اجرا و تغییر است.

var product = new Product
         {
             Id = 1,
             Name = "Keyboard",
             Price = 2_500_000m
         };
         
         Console.WriteLine(product.CalculateTotal(2));

این نمونه عملی چند مفهوم فصل را در کنار هم قرار می‌دهد و برای مشاهده رفتار واقعی کد قابل اجرا و تغییر است.

۷. خطاهای رایج

• قرار دادن تمام منطق برنامه در یک Class

• استفاده گسترده از Fieldهای public

• ساخت مدل‌هایی که فقط داده دارند و رفتار مرتبط را در Serviceهای نامرتبط پراکنده می‌کنند

۸. نکات اجرایی

• نام‌ها، Typeها و Methodها را متناسب با مفهوم دامنه و بدون ابهام انتخاب کنید.

• هشدارهای کامپایلر و Nullable را بدون بررسی خاموش نکنید.

• منطق هر بخش را تا حد امکان کوچک، قابل تست و مستقل از I/O غیرضروری نگه دارید.

۹. تمرین عملی

کلاس BankAccount با موجودی داخلی و متدهای Deposit و Withdraw طراحی کنید و قوانین حداقل موجودی را در خود کلاس نگه دارید.

۱۰. جمع‌بندی

در این فصل، مبانی «مبانی برنامه‌نویسی شی‌گرا» با تمرکز بر ساختارهای اصلی زبان، الگوهای صحیح استفاده و خطاهای رایج بررسی شد. تسلط بر این مفاهیم زمینه لازم برای اتصال موضوع به فصل‌های بعدی و طراحی کدهای خواناتر، قابل نگهداری و قابل تست را فراهم می‌کند.