مرور سریع Design Patterns (الگوهای طراحی GoF)
رایجترین الگوهای طراحی از کتاب Gang of Four، دستهبندیشده در سه گروه ساختی، رفتاری و ایجادی.
فهرست بخشها
الگوهای ایجادی (Creational)0/3
کنترل نحوهٔ ساختهشدن Object ها.
csharp\nservices.AddSingleton<ICacheService, MemoryCacheService>();\n
در .NET مدرن، Singleton معمولاً از طریق DI Container مدیریت میشود، نه پیادهسازی دستی با private constructor.
استفاده از Singleton برای نگهداشتن State قابلتغییر که بین Requestهای مختلف باید ایزوله باشد.
csharp\nvar burger = new BurgerBuilder().AddCheese().AddBacon().Build();\n
الگوهای ساختاری (Structural)0/3
ترکیب Object ها و کلاسها.
مقایسه با Facade در مصاحبه: Adapter یک Interface را تغییر شکل میدهد، Facade یک Interface ساده روی چند سیستم پیچیده میگذارد.
csharp\nStream s = new BufferedStream(new FileStream(""f.txt"", FileMode.Open));\n
BufferedStream در .NET یک نمونهٔ واقعی از Decorator Pattern است — این مثال را بهعنوان نمونهٔ آشنا در مصاحبه بیاورید.
الگوهای رفتاری (Behavioral)0/3
نحوهٔ تعامل Object ها با هم.
csharp\ninterface IShippingStrategy { decimal Calculate(Order o); }\n
اگر پرسیدند تفاوت Strategy با Factory Method چیست: Strategy دربارهٔ رفتار (چه کاری) است، Factory دربارهٔ ساخت Object (چه چیزی) است.
csharp\npublic event EventHandler<OrderEventArgs>? OrderPlaced;\n
رویداد (event) در C# پیادهسازی داخلی الگوی Observer است.
csharp\ninterface IOrderRepository { Task<Order?> GetByIdAsync(Guid id); }\n
ساخت یک Generic Repository بیشازحد انتزاعی که فقط EF Core را با یک لایهٔ اضافه دوباره پیچیده میکند بدون ارزش افزوده.
