اصل انحراف وابستگی (DIP) یک مفهوم اساسی در مهندسی نرم افزار است که باعث گسترش اتصال شل بین اجزای می شود.این به توسعه دهندگان کمک می کند تا سیستم هایی را ایجاد کنند که انعطاف پذیر، قابل نگهداری و مقیاس پذیر هستند و وابستگی ها به پیاده سازی های بتنی را کاهش می دهند.

درک اصل عدم وابستگی

DIP می گوید که ماژول های سطح بالا نباید به ماژول های سطح پایین وابسته باشند؛ هر دو باید به Abstraction ها وابسته باشند، علاوه بر این، انتزاع ها نباید به جزئیات بستگی داشته باشند، اما جزئیات باید به Abstraction ها وابسته باشند.این انحراف جهت وابستگی اجازه می دهد تا برای اصلاح و گسترش سیستم بدون تاثیر قطعات غیر مرتبط.

اجرای DIP برای Shell Fusion

استفاده از اصل عدم وابستگی شامل چندین گام کلیدی است:

  • رابط ها یا کلاس های انتزاعی را تعریف کنید که رفتار مورد انتظار را مشخص می کنند.
  • بستگی به این انتزاع ها به جای کلاس های بتنی دارد.
  • پیاده سازی های بتنی را از طریق تکنیک های تزریق وابستگی مانند تزریق سازنده یا تزریق setter انجام دهید.

مثال: سیستم پردازش پرداخت

سیستم پردازش پرداخت را در نظر بگیرید که از روش های پرداخت چندگانه مانند کارت اعتباری و PayPal پشتیبانی می کند، به جای اینکه سیستم را به کلاس های پرداخت خاص متصل کند، یک رابط مشترک را تعریف کنید:

[[ویرایش] [۱] [۱۰] [۱] [۱] [۱] [۱] [۱۰] [۱] [۱] [۱] [۱]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۳] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۳] [۱] [۱] [۳] [۱] [۱] [۱] [۱] [۱

[[ویرایش] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]

[در این باره] [و [در برابر [و] [و [به جز] [و [به] [و [به جز] [و [به جز] [و [به جز]] [و [به جز] [و [به جز] [و [و] [و [و] [و [و] [به [و] [و [به [و [و] [و [و [و [و [و [و [و] [و [و [و [و [به [و [به [به [و] [و [و] [به [و [و] [و [به [به [و [و [و] [و] [به [به [به] [و [و [و [و [و [به [به [و [و [و] [و] [و [و [و] [و] [و] [و] [و [و [و [و [به [به [به [ [و]]] [به [به [به [به [و [و [و [و [و [و [ [ [ [ [ [ [ [ [به [و [به]]] [و [ [ [به

[[ویرایش]

کلاس پرداخت به این رابط بستگی دارد:

[[ویرایش] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]] [۱] [۱]] [۳] [۱] [۵] [۳] [۳] [۵] [۳] [۳] [۱] [۳] [۱] [۱] [۳] [۳] [۱] [۳] [۵] [۳] [۳] [۳] [۳] [۳] [۳] [۵] [۳] [۳] [۵] [۳] [۳] [۵] [۳] [۳] [۳] [۳] [۳] [۵] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۵] [۳] [۵] [۳] [۳] [۳] [۳] [۵] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۵] [۳] [۳] [۳] [۳] [۵] [۳] [۳] [

[[ویرایش] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۱] [۱] [۱] [۱] [۳] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]

[[ویرایش] [۱] [۱۰] پرداخت مستقیم [۱]

[[ویرایش] [۱] [۱] [۱] [۱۰] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۱] [۲] [۱] [۲]] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۲] [۱] [۱] [۱] [۱] [۲] [۱] [۲] [۲] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۱] [۲] [۲] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۲] [۲] [۱] [۱] [۲] [۱] [۲] [۱] [۱

[این [و] [و] این [و] [و] [[[ویرایش]]

[[ویرایش]

[[ویرایش] [۱] [۲] [۲] [۲] [۲] [۲]] [۲] [۲]] [۲]] [۲] [۲]] [۲] [۲] [۲] [۲]] [۲] [۲] [۲] [۱] [۲] [۱] [۱] [۲] [۲] [۲] [۱] [۲] [۲] [۳] [۱] [۲] [۲] [۲] [۲] [۲] [۱] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۱] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [۲] [

[[ویرایش] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۱]

[[ویرایش]

[[ویرایش]

این رویکرد اجازه می دهد تا بدون تغییر کلاس پرداخت، روش های پرداخت جدید را اضافه کند، که نمونه ای از اتصال شل و پایبندی به DIP است.

مزایای استفاده از DIP

پیاده سازی اصل عدم وابستگی مزایای مختلفی را ارائه می دهد:

  • افزایش انعطاف پذیری برای تغییر یا اضافه کردن اجزای
  • کاهش تاثیر تغییرات در بخش های غیر مرتبط سیستم.
  • بهبود قابلیت آزمایش از طریق مسخره کردن آسان تر وابستگی ها
  • جدایی بهتر از نگرانی ها، منجر به معماری کد تمیز تر می شود.

نتیجه گیری

اصل وابستگی به انحراف یک ابزار حیاتی برای دستیابی به اتصال نرم افزار است.با توجه به انتزاع به جای پیاده سازی های بتونی، توسعه دهندگان می توانند سیستم هایی را بسازند که سازگارتر و آسان تر برای حفظ هستند. اعمال DIP به طور قابل توجهی می تواند کیفیت و طول عمر پروژه های نرم افزار را بهبود بخشد.