Loose Coupling و Tight Coupling چیست ؟

  • خانه
  • Loose Coupling و Tight Coupling چیست ؟
Image تحقیقات

Loose Coupling و Tight Coupling چیست ؟

سلام و احترام

مقاله ی امروز توضیحی درباره ی Loose Coupling  و Tight Coupling است .

اگر برنامه نویس باشید و مقالات و آموزش های  مربوط به برنامه نویس های حرفه ای را دنبال نمایید حتما با اصطلاحاتی تحت عناوین Loose Coupling و Tight Coupling برخورد کرده اید. اما تفاوت این دو مورد در چیست؟

توضیح مختصر

Loose Coupling

Loose Coupling به معنای به حداقل رساندن وابستگی های کلاس به کلاس های دیگری که مستقیما از آن ها استفاده می کند می باشد. در Tight Coupling کلاس ها و آبجکت ها به یکدیگر به شدت وابسته می باشند. در حالت کلی Tight Coupling معمولا ساختار بدی می باشد چرا که انعطاف پذیری و قابلیت استفاده مجدد کد را پایین می آورد و نیز توسعه و تغییر در کد را بسیار مشکل تر می نماید و … .

 

Tight Coupling

شیئی که Tightly Coupled باشد شیئی می باشد که نیاز دارد تا در مورد بقیه شی ها یا object ها دانش بسیار کمی داشته باشید و معمولا بسیار به ساختار یکدیگر وابسته می باشند. در یک نرم افزار Tightly Coupled تغییر در یک شی معمولا نیازمند تغییر در چندین شی دیگر نیز می باشد. در یک پروژه کوچک به راحتی می توانیم تغییرات را تشخیص دهیم و احتمال اینکه بخشی از کد که نیاز به اصلاح دارد بدون اصلاح بماند بسیار کم می باشد. اما در پروژه های بزرگتر همه برنامه نویس ها وابستگی های درونی آبجکت ها به یکدیگر را نمی شناسند و بنابراین تغییر در یک آبجکت احتمال این که باعث عدم اجرای درست بخش دیگری از برنامه شود را بیشتر می کند. اما هر مجموعه آبجکت های  Loosely coupled به یکدیگر وابسته نمی باشند.

 

مشکلات Tight Coupling

فرض کنید در کی سیستم ریموت و تلویزیون  Tight Coupling برخی مشکلات را ایجاد می کند. کلاس بالا را در نظر بگیرید تمام آبجکت ها شدیدا به یکدیگر وابسته می باشند که باعث بروز مشکلات زیر خواهد شد:

  1. تلویزیون بدون ریموت کنترل کار نخواهد کرد
  2. تغییر در  ساختار کلاس تلویزیون نیاز در تغییر کلاس ریموت می باشد
  3. کنترل تنها می تواند کلاس تلویزیون را کنترل کند و برای وسایل دیگر غیر استفاده می شود

 

Loose Coupling

loose coupling یک مدل طراحی می باشد که دنبال کمینه کردن وابستگی های داخل کلاس ها به یکدگیر می باشد به شکلی که تغییر در یک کلاس نیازی به تغییر در بقیه کلاس ها نداشته باشد. Loose coupling از انعطاف پذیر کردن کد بسیار عمومی تر می باشد, قابلیت نگه داری را بیشتر می کند و کل سیستم را پایدارتر می کند.
 

مزایا loose coupling

به طور خلاصه:
  1. قابلیت تست پذیری را افزایش می دهد
  2. کمک می کند تا اصل مربوط به طراحی بر اساس اینترفیس مطرح شده در GOF را رعایت نمایید
  3. قابلیت تغییر در کد بسیار بالاتر می رود
  4. امکان تغییر و جایگزینی بخشی از کد, ماژول و یا آبجکت ها بسیار ساده تر می شود چرا که وابستگی به یکدیگر ندارند.

برگرفته از سایت هریما