مبانی برنامهنویسی شیگرا
مبانی برنامهنویسی شیگرا
بخشی از آموزش جامع 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 طراحی کنید و قوانین حداقل موجودی را در خود کلاس نگه دارید.
۱۰. جمعبندی
در این فصل، مبانی «مبانی برنامهنویسی شیگرا» با تمرکز بر ساختارهای اصلی زبان، الگوهای صحیح استفاده و خطاهای رایج بررسی شد. تسلط بر این مفاهیم زمینه لازم برای اتصال موضوع به فصلهای بعدی و طراحی کدهای خواناتر، قابل نگهداری و قابل تست را فراهم میکند.