آشنایی و پیاده سازی الگوی Repository Pattern

آخرین بروز رسانی: 1401/05/12

همه ما میدونیم که دیتابیسها چه نقش مهمی در نرمافزارها دارن

از طرفی زمان توسعه نرمافزار با چالش انتخاب دیتابیس مناسب روبرو هستیم . چالش‌هایی مثل اینکه 

- چه نوع دیتابیسی برای پروژمون مناسب هست relational یا no-sql

- بعد از انتخاب نوع دیتابیس , چالش بعدی انتخاب خود دیتابیس هست مثل اگر relational رو انتخاب کنیم sql ,Oracle ,postgress یا اگر no-sql رو انتخاب کرده باشیم mongo, elastic ,... گزینه های ما هستن

اما انتخاب ما هر چی که باشه, نرمافزار باید طوری توسعه داده بشه که به دیتابیس خاصی وابسته نشه و مستقل از دیتابیس کد نویسی بشه. در غیر اینصورت اگر بعدن در حین توسعه متوجه بشیم که دیتابیس اشتباهی رو انتخاب کردیم عملن دیگه سوییچ کردن به دیتابیس جدید غیر ممکن خاهد بود (مگر اینکه از اول برنامه رو باز نویسی کنیم بر اساس دیتابیس جدید)

حالا آیا راهی هست که بشه برنامه مستقل از دیتابیس توسعه داده بشه و در صورت لزوم وسط کار سوییج کنیم رو یه دیتابیس دیگه؟

بله . استفاده از الگوی Repository

کلن repository یک لایه ای هست میان برنامه و دیتابیس که همه کارها و درخواستهای سمت دیتابیس توسط اون انجام میشه.

اینطوری نه تنها قابلیت test و نگهداری برنامه افزایش پیدا میکنه بلکه برنامه به شکلی توسعه پیدا میکنه که هیچ وابستگی به هیچ دیتابسی نداره 

نمونه کد زیر نمونه پیاده سازی و استفاده درست از الگوی repository رو نشون میده که یه برنامه رو هم با دیتابیس  SQL  که یه دیتابیس relational هست پیاده سازی کرده هم با mongoDb که یه دیتابیس No-Sql هست. و به راحتی میتونید با تغییر یه تنظیم ساده در  appsetting.json بین دیتابیسها سوییچ کنید بدون اینکه حتی یک خط کد در برنامتون دست بخوره

vahidarya14/RepositoryPattern (github.com)

نظر دهید

آدرس ایمیل شما منتشر نخواهد شد. فیلدهای الزامی علامت گذاری شده اند *