مفهوم IOC یا Inversion Of Control در برنامه نویسی چیست ؟
سلام لطفا بفرمایید مفهوم IOC یا Inversion Of Control در برنامه نویسی چیست ؟
مفهوم IOC یا Inversion Of Control در برنامه نویسی چیست ؟
در واقع IOC یک معماری هست که در معماری های رایج برنامه نویسی مثل معماری پیازی پیاده سازی میشه. یکی از تعاریفی که در معماری تمیز وجود داره این هست که به طور کلی شما باید سعی کنید که هر کلاس یک وظیفه داشته باشه و وابستگی بین کلاس ها کمتر و کمتر باشه.
به عنوان مثال فرض کنید یک ریپازیتوری دارید که توابع و متدهایی رو داخل اون تعریف کردید. حالا قصد دارید در سایر کلاس ها از متدها و توابع این ریپازیتوری استفاده کنید. خب برای این کار باید یک نمونه از ریپازیتوری رو در کلاس مورد نظر تعریف کنید.
CustomerRepository customerRepo = new CustomerRepository();
خب وقتی شما یک نمونه از کلاس ریپازیتوری در کلاس دیگه ای تعریف میکنید به تمامی کلاسها، توابع و حتی دیتابیس (در صورتی که در ریپازیتوری استفاده شده باشد) دسترسی وجود دارد. همچنین در کلاس دوم یک کلاس دیگر که همان ریپازیتوری می باشد ایجاد شده است که در این صورت از اصول معماری تمیز فاصله گرفته است.
بنابراین در این موارد باید سعی کنید وابستگی این 2 کلاس را از بین ببرید که می تونید با تعریف یک Interface و استفاده از اینترفیس به جای استفاده مستقیم از ریپازیتوری وابستگی بین کلاس ها را از بین ببرید.
خب در این حالت اصطلاحا شما از IOC استفاده کرده اید.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf
- Library Animation برای کنترلهای WPF
- مشکل در تغییر مقدار Text کنترل RibbonBar در کامپوننت DevExpress
- قرار دادن مقادیر ارسالی یک ستون از جدول به صورت سطری در استیمول