CodeShot
Design Patterns1 دقیقه مطالعه

Repository Pattern چیست؟

الگویی که دسترسی به داده را پشت یک Interface مخفی می‌کند تا لایه‌های بالاتر از جزئیات دیتابیس بی‌خبر بمانند.

چرا مهم است؟

بدون Repository، کوئری‌های دیتابیس در سراسر برنامه پخش می‌شوند و تغییر دیتابیس یا تست‌نویسی بسیار دشوار می‌شود.

مثال

public interface ICapsuleRepository
{
    Task<Capsule?> GetBySlugAsync(string slug);
}

public class CapsuleRepository : ICapsuleRepository
{
    // پیاده‌سازی با Dapper + Stored Procedure
}

نکات مهم

  • در این پروژه Repository «سبک» است: فقط CRUD و کوئری‌های اختصاصی، بدون Unit of Work پیچیده.
  • هر Repository دقیقاً پشت یک Interface در لایه Application قرار می‌گیرد.

اشتباه رایج

❌ نوشتن یک Repository عمومی (Generic Repository) برای همه Entityها — معمولاً باعث از دست رفتن کوئری‌های بهینه و اختصاصی می‌شود.

خلاصه

Repository Pattern دسترسی به داده را پشت یک Interface پنهان می‌کند. این کار تست‌پذیری کد را بالا می‌برد و تغییر فناوری دیتابیس را آسان می‌کند. در این پروژه Repositoryها سبک و اختصاصی هستند، نه Generic.

حالا امتحان کن

🧩آزمون Repository Pattern6 سؤال · نمره قبولی 60٪
این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←