بهتر نبود برای repository یک abstrct class جدا میساختیم و اون رو implement میکردیم چون datasource و repository به گفته استاد لایه جدا هستند و ممکنه متدهاشون فرق داشته باشه؟
سلام محمد جان
چن تا نکته وجود داره که به ترتیب میگم خدمتت
کلاس DataSource چون همیشه باید یک کلاس انتزاعی باشه به صورت abstract تعریف شده ینی داره کارایی و نیازهای اپ رو مشخص میکنه
اما کلاس repository یک کلاس انتزاعی نیست یه کلاس واقعی (کلمه واقعی براش واژه خوبی نیست) هس که داره تمام اون نیازهای اپ مارو برامون پیاده سازی میکنه و پیاده سازی منطق برنامه داخلش اتفاق میفته پس نمیتونه اصولا از نوع abstract باشه ..
از طرفی شما برای پیاده سازی اپ به تنها چیزی که دسترسی داری برای طبق اصول معماری کلاس repository هست که نباید بیای و abstract تعریفش کنی چون کلاسی که abstract باشه قابل initialize نیست .
منظور از لایه جدا این هست که شما میتونی هم سرور داشته باشی هم دیتابیس که هر کدوم کلاسهای خاص خودشو داره و متدهای خاص مربوط به خودش که repository نمیاد خودشو درگیر تمامی جزییات اون لایهها بکنه فقط نقش تصمیم گیرنده رو بازی میکنه که از کدوم منبع شما داده هارو استخراج کنه و در اختیارت بزاره