سلام استاد... بی نهایت ممنونم بخاطر این دوره عالی
آیا استفاده از resolve فقط بخاطر این هست که سرویس کانتینر خودش موارد لازم (Dependencies) رو تزریق کنه و این موضوع فقط برای کلاسهایی که در کانستراکتور وابستگی دارن قابل استفاده هست یا همیشه قابل استفاده هست؟
چون در برخی ویدیوها شما توی کانستراکتور وابستگی خاصی تزریق نکردین ولی از resolve استفاده میکنید. به نظر شما چطور resolve رو بهتر درک کنیم!
سلام
معذرت خواهی میکنم بابت تاخیر در پاسخ ..
زمانی که ما از Resolve استفاده میکنیم به کانتینر اعلام میکنیم که ما چنین آبجکتی احتیاج داریم و ساخت آبجکت و تزریق وابستگیها رو میسپاریم به کانتینر، این مورد ارتباطی هم به این نداره که حتما داخل سازنده کلاس Dependency داره یا نه، یه زمانی شما یک سرویس رو Bind میکنید به یک سرویس دیگه و به همین دلیل از Resolve استفاده میکنید. دلیل اینکه در یه سری جاها من بدون اینکه وابستگی داشته باشه از Resolve استفاده کردم این هست که شاید بعدا بخوام این کلاس رو به یک کلاس دیگه Bind کنم و یا مثلا به این کلاس به خصوص وابستگی تزریق کنم، در این صورت زمانی که از Resolve استفاده کرده باشم دیگه نیازی نیست که کدم رو تغییر بدم.
برای اینکه این مورد رو هم بهتر یاد بگیرید اصل پنجم SOLID یعنی Dependency Inversion رو مطالعه کنید.
موفق باشید.