با سلام خدمت استادان سایت
یه سوالی داشتم که اول مساله رو شرح میدم:
من یک برنامه ساختم که قابلیت کار با انواع پایگاه داده ها رو داشته باشه
اول یک کلاس از نوع abstract درست کردم به اسم DBProvider
مثلا
public abstract class DBProvider
{
public abstract void Add();
public abstract string Get();
.
.
.
}
خوب حالا کلاسهایی که از این کلاس ارث بری دارن میتونن با هر پایگاه داده ای که کلاس فرزند دوست داره کار کنه و به برنامه اصلی هم ربطی نداره که این کلاس چه کار می کنه و با چه پایگاه داده ای کار می کنه
و داخل متد اصلی برنامه هم از این عبارت استفاده کردم
DBProvider dbp = new MyDrivedDBProvider();
dbp.Add();
string foo = dbp.Get();
تا اینجا درسته و من هم مشکلی ندارم و برنامه هم درست با چند تا پایگاه داده کار می کنه.
حالا سوالی که از شما عزیزان دارم اینه که بهتر نیست اون کلاس abstract رو نسازم و به جاش از interface استفاده کنم و بعد هر کلاسی که خواست برای برنامه با پایگاه داده ارتباط برقرار کنه اون interface رو باید پیاده کنه؟
فرق این دو روش چیه؟
اگه زحمتی براتون نیست توضیح بدید.
پیشاپیش از شما تشکر می کنم.